started work on full implementation of event system