better template creation
don't use eval