refactored event info to follow pimpl pattern