updated template logic