refactor package layout