Feature/create client

Is it part of the contract with the class that you need to call close() once you're done? If so it should be documented with the class (and in any sample code), and you may want to have a helper method at the client level (so that it's just self.client.close()) to maintain encapsulation.