Removed production code that didn't yet have a failing test.
Added query methods to the watcher and refactored the internals to use a map rather than an array/slice.
Rename.
Added query methods to public watcher contract.
Scanner uses watcher's new query methods. Extracted helper class.
Moved some code around.
Completed the Scanner.