template construct