start of refactoring