refactoring, refactoring, refactoring..