hash construction preferences

okay I actually like this, so I'm going to update the thing again.