refactored, using project template