#24 add checksum enum and simple negotiation code