HashGenerator; not tested; tutorial follows; #22