status monitor refactored to allow raising errors in low-level methods; tests for error checking when saving status
further status monitor refactoring/fixes and tests