half hash implemented