add events callback