implemented fingerprinting, closing #1