first pass at event queue