improve authentication