divide the templates into parts for code reuse