add hook interface