implemented crc32 check