Complete rethink and rebuild

Adds Priority queue for events that need to fire callbacks in an order