idea for generic hash