#1 refactoring