1-using boost::noncopiable 2-getHashValue2 collects the first bit in each nibble. getHashValue3 implements a limited version of Hash Functions for Table Lookup from http://burtleburtle.net/bob/hash/evahash.html. this limited collisions.