represent async events as a linked list