cleaned up the client quite a bit, added options