introduce modular templates