work in progress, moving synthetic events out of the impl and up to the FileSystem level