try refactoring