fingerprint now based on attribute definitions