Watchers now correctly implemented.

There's a few tests to validate the behavior, but they could be more extensive.