add tests for MD5
rename private methods
indent
tweaks