refactored package