better authentication system built with generic views