Moves out to fingerprint
Adds bit flipping to sub-fingerprints

Easier to test in isolation like this, perhaps
belongs in search but seems correct here too.