Cleanup client (DO NOT MERGE)

Resolves a bunch of issues- still need to test it though.

Resolves #292 #290 #293 (Theoretically...)