Client refactor for M3

Refactor client to make API more pythonic.  Added polish to keep.