refactoring package structures