changing reactor events to pointers to avoid subtle copy bugs