code using template