add onActivate callback