shop refactored