Refactored Shop plugin