add negotiate plumbing to the kernel