fix a bug in set(update node need to create a new one, not get the pointer of the node)