Add convenience Client class plus some refactoring