starting the refactoring