refactored shop