think about refactoring