this is very sketchy. Hash codes aren't unique