feat: detachNode