hash implemented