expression and function as templates