delegateEvents has to be called every time