broke out subclasses for WatchDirectory, laid out queueing rules across system