refactored abstractevents a bit and did some dev work