Add Client interface

* [x] Add new `Client` interface
* [x] Documentation

See also #18.