refactoring of package structure