@arocnies yep - that's also a reason that I totally forgot about 😀. It's nice having those private methods scoped to the "instance" but not cluttering the main function.
As an aside, not sure if you've come across them yet, but I'd definitely take a look at the Lens system for (de)constructing HTTP
Messages - it's been one of the most useful features in the library - it's revolutionised the way we handle messages and removes loads of boilerplate validation/marshalling code. It does seem to be a bit of a mind-bender though, so just yell if you've got any questions 😀:
https://www.http4k.org/cookbook/typesafe_http_requests_with_lenses