Redid the client stuff, removing a lot of redundant code/logic