docs: def _start_monitoring(self):
          """ Internal method that monitors the directory for changes """
          
          # Grab all the timestamp info
          before = self._file_timestamp_info(self.path)
  
          while True:
              gevent.sleep(1)
              after = self._file_timestamp_info(self.path)
  
              added = [fname for fname in after.keys() if fname not in before.keys()]
              removed = [fname for fname in before.keys() if fname not in after.keys()]
              modified = []
  
              for fname in before.keys():
                  if fname not in removed:
                      if os.path.getmtime(fname) != before.get(fname):
                          modified.append(fname)
  
              if added: 
                  self.on_create(added)
              if removed: 
                  self.on_delete(removed)
              if modified: 
                  self.on_modify(modified)
      
              before = after