add the rest of cart functions