Moved DirectoryChangeListener to its own class