refactoring package structure