several changes in cart class and use case