first refactoring run