after searching for centuries, finish() actually just work
add update fingerprint