We accept a comparator here which we don't store but only once
use in this Constructor. We use it only to fill hashes ... which is
again not used anymore, or? Why don't we skip the comparator and remove hashes and computeHashes?