add beforeInit