fix cart behavior