slowly refactoring