before aggressive refactoring