Patch/fingerprint tidy 1

Some cleanup to fingerprint code.
"may be 0, 2, 4 or 6.", maybe throw an IllegalArgumentException if not? (ref: http://stackoverflow.com/questions/6086334/is-it-good-practice-to-make-the-constructor-throw-an-exception)