generic hash foolery