adding migration event and updating simulation engine with events that can run more than one cycle