template initialization added