Cleanup client

Resolves a bunch of issues- still need to test it though.

Resolves #292 #290 #293 (Theoretically...)
Why is this in `file_contents.py`?