first pass at porting trait_hash.t