split different source units
start refactoring: use uint32_t instead of unsigned long for crc values