refactoring Template
+ Banchmark