Perhaps we should use a queue to hold the last n events.