refactoring the package structure