refactoring: reduce package cycles