clean up most responses by using the ::create factory method and chainin...

...g


Dont have a key and there are no tests, but otherwise it works as intended, the parts i could try out.