         }
     }
     
+    var queryParameters : [ String : AnyObject ] {
+        get {
+            assertionFailure("Must override in subclass")
+            return Dictionary<String, AnyObject>()
+        }
+    }
+    
     var HTTPMethod : CRHTTPMethod {
         get {
             assertionFailure("Must override in subclass")

class CRUberProductsRequest : CRUberRequest {
    override var requestUrl : String {
        get {
            return "https://api.uber.com/v1/products?latitude=37.775&longitude=-122"
        }
    }
    

class CRUberPromotionsRequest : CRUberRequest {
    override var requestUrl : String {
        get {
            return "promotions"
        }
    }
    
    override var queryParameters : [ String : AnyObject ] {
        get {
            return [
                "start_latitude" : 37.775,
                "start_longitude" : -122,
                "end_latitude" : 38,
                "end_longitude" : -122
            ]
        }
    }
    
