more elegant abstacted solution with checksum module