let the refactoring begin