moved storefront logic to backend