Update .gitignore
Refactoring
Add a semi-generic internet checksum function