basic reauthing framework