added user auth

plus a ton of other stuff