new implementation of md5 using attr