more implementation for add_cart