add template checking