add class NodeDataPtr
modify the design of hook
fix