update how the link handshake/receiving works, more complete now