implemented md5 generation