Refactor self-tests into the Fingerprint

Also makes cucumber pass