added SOOAuth2ViewController abstract class