Started adding documentation to the source code.
Add more code documentation and allowed the hash functions to be overridden.