set up project to depend on trail, glib and dbus-glib. dbus-binding-tool --mode=glib-server my-object.xml > my-object-glue.h. store the operations that are to be done (in RAM and on disk?)! Maybe allow multiple queues (maybe not, too complicated). cache the affected file names per stat_dev, then per folder, including the flag whether the name gets added or removed and, if possible, the inode#. actually do the operations one by one in order by using TrailSpawner to actually carry out the stuff.