add onInit callback