NEW: add events on and off methods