package refactor