add new templates, refactor the generator