implemented omniauth