Force valid states to be set on response objects

Addresses #4 and is a breaking change to put us in a better place moving forward.