                     var searchResults = [TwitterSearchResult]()
                     if let results = response["statuses"] as? [[String:Any]] {
                         for result in results {
-                            if let tweet = result["text"] as? String,
-                                let user = result["user"] as? [String:Any],
-                                let userHandle = user["screen_name"] as? String,
-                                let userImagePath = user["profile_image_url_https"] as? String,
-                                let location = user["location"] as? String {
-                                searchResults.append(TwitterSearchResult(tweet: tweet,
-                                                                         user: TwitterUser(handle: userHandle,
-                                                                                           imagePath:userImagePath,
-                                                                                           location: location)))
+                            if let twitterResult = TwitterSearchResult(dictionary: result) {
+                                searchResults.append(twitterResult)
                             }
                         }
                     }

    public let handle: String
    public let imagePath: String
    public let location: String
}
public struct TwitterSearchResult {
    public let tweet: String
    public let user: TwitterUser
}
open class TwitterSearchService: AbstractBaseService {
    private var nextResultsPage: String?

                    var searchResults = [TwitterSearchResult]()
                    if let results = response["statuses"] as? [[String:Any]] {
                        for result in results {
                            if let twitterResult = TwitterSearchResult(dictionary: result) {
                                searchResults.append(twitterResult)
                            }
                        }
                    }
