draft user auth implementation