added crc implementation