md5 is optional