add an init mechanism