Update doc strings and refactored init methods

Doc strings better conform to PEP 257 and init methods were refactored
to be easier to grok and to do a better job of separating concerns