begin hook system