package structure refactor