major work: add events