added checksum calculation to payload reading