these should be ref parameters in order to "return" min/max values
make Trigger and Queue methods generic to carry through full event type

Or at least, to carry it through without having to do a GetType() when
needed when we are freeing the event in the object pool.
fix enumerator usage