refactor. remove pattern matching
refactor
ShoppingCart