#23 set up new branch
#24 adding checksum negotiation
#24 add checksum enum and simple negotiation code