added event system a-la FUSE (because i'm going to steal FUSE FDC emulation code)