crc32 implementation added