custom event adapter.