add hook support