Refactor the API to avoid being a singleton

* Avoids the singleton pattern
* Allows rspec to function
* Updates docs
* Introduces accessors