Refactor entire modules and implement checksum-fun