added full implementation to file change listener