added a new folder crc32, split the main function into different parts