I think price should be required so we don't need to check for null