setting cart on self and accepting subclass kwargs