refactor to introduce proper (but poor) hashing