first attempts at restructuring cart
cart spec and model