add onBeforeInit callback