Breaking change, but adds response types, and should allow other stuff too