add project;refactor template inheritance