refactoring by moving classes around several packages.