better checksum structure