fully functional auth