add some authentication to protect the codes