   }
 }
 
+extension ModeInfo {
+  private class func fromJSONResponse(response: AnyObject?) -> [ModeInfo] {
+    guard let JSON = response as? [String: AnyObject],
+          let regions = JSON["regions"] as? [[String: AnyObject]],
+          let region = regions.first,
+          let array = region["transitModes"] as? [[String: AnyObject]] else {
+      return []
+    }
+    
+    return array.flatMap { ModeInfo(forDictionary: $0) }
+  }
+}
+
 extension TKBuzzInfoProvider {
+  
+  /**
+   Asynchronously fetches paratransit information for the provided region.
+   */
+  public class func fetchParatransitInformation(forRegion region: SVKRegion, completion: ParatransitInformation? -> Void)
+  {
+    return fetchRegionInfo(
+      region,
+      transformer: ParatransitInformation.fromJSONResponse,
+      completion: completion
+    )
+  }
+  
+  /**
+   Asynchronously fetches all available individual public transport modes for the provided region.
+   */
+  public class func fetchPublicTransportModes(forRegion region: SVKRegion, completion: [ModeInfo] -> Void)
+  {
+    return fetchRegionInfo(
+      region,
+      transformer: ModeInfo.fromJSONResponse,
+      completion: completion
+    )
+  }
 
-  public class func fetchParatransitInformation(forRegion region: SVKRegion, completion: (ParatransitInformation?) -> Void)
+  private class func fetchRegionInfo<E>(region: SVKRegion, transformer: AnyObject? -> E, completion: E -> Void)
   {
     let paras = [
       "region": region.name

    self.number = number
  }
  
  class func fromJSONResponse(response: AnyObject) -> ParatransitInformation? {
    guard let JSON = response as? [String: AnyObject],
          let regions = JSON["regions"] as? [[String: AnyObject]],
          let region = regions.first,


import Foundation

/**
 Informational class for paratransit information (i.e., transport for people with disabilities).
 Contains name of service, URL with more information and phone number.
 
 - SeeAlso: `TKBuzzInfoProvider`'s `fetchParatransitInformation`
 */
public class ParatransitInformation: NSObject {
  let name: String
  let URL: String
