added a whole bunch of auth stuff, don't judge me