add function finish
add PK