refactoring Builder and add Templates for builder