organizing and rolling own auth