ShoppingCart -> Model + Controller + ViewModels