improved state logic for starting & stopping, and exposed locals
added silentMode option, and added cb hooks
more code coverage