refactor the package structure.