Initial pass at event manager. still incomplete.