template initialization