work on MD5 implementation