reduce redundancy of templates