Complete Implementation of Client

Note that there's no websocket support currently.