moved some stuff around and impl ability to block on the event dispatcher