Adding interfaces for more explicit state checking
Updating API docs to include new methods and few tweaks