Host negotiation
At this point I'm not really sure what's changed. It's been a long, travel filled time and my coding has been very disconnected.
But I'm sure that there's some important stuff here. afaict, all that's left for me to do is finish the negotiation code.