Refactor the API. updates #46

API methods now consist of simple accessors and mutators that are logically
grouped.