Event driven simulator