add: fingerprint implementation