TODO: Create an event queue and process it in every time step