Change all methods to use named parameters and proper signatures.

Add documentation to all methods.

Change tests as appropriate to match the new method signatures.
Bump version number