Lots of features and edits

Corrected the status enumerations
Corrected the semantics of some methods names
Added a callback to the user interface: the state is changed and reported with this.
Implemented various methods
Implemented various features