remove events on dispose
added event tests