first implementation, probably working but stupidly inefficient. lets try that again
using a head/tail model now for moar betterness
fixed (setNextEvent)
details