md5 hash, unit tests, minor stuff