refactored method
build new version