initial authentication stuff needs ALOT of work