refactored Product and Basket classes