Did some work for the event system

I might re-write some classes to clean them up at a later time.