added checksum verification