start refactoring into packages