wip. commit boilerplate stuff.
wip. formalize error structure.
wip, tests pass. time to fix the client.