add function : authenticate
add some other arguments
add a instruction