add authentication functionality