 	}
 	
 	public func lights(_ selector: String = "all", completionHandler: @escaping ((_ request: URLRequest, _ response: URLResponse?, _ lights: [Light], _ error: Error?) -> Void)) {
-		let request = NSMutableURLRequest(url: baseURL.appendingPathComponent("lights/\(selector)"))
+		var request = URLRequest(url: baseURL.appendingPathComponent("lights/\(selector)"))
 		request.httpMethod = "GET"
 		addOperationWithRequest(request as URLRequest) { (data, response, error) in
 			if let error = error ?? self.validateResponseWithExpectedStatusCodes(response, statusCodes: [200]) {
 				completionHandler(request as URLRequest, response, [], error)
 			} else {
 				let (lights, error) = self.dataToLights(data)
-				completionHandler(request as URLRequest, response, lights, error)
+				completionHandler(request, response, lights, error)
 			}
 		}
 	}

				completionHandler(request as URLRequest, response, [], error)
			} else {
				let (results, error) = self.dataToResults(data)
				completionHandler(request as URLRequest, response, results, error)
			}
		}
	}
	
	public func scenes(_ completionHandler: @escaping ((_ request: URLRequest, _ response: URLResponse?, _ scenes: [Scene], _ error: Error?) -> Void)) {
		let request = NSMutableURLRequest(url: baseURL.appendingPathComponent("scenes"))
		request.httpMethod = "GET"
		addOperationWithRequest(request as URLRequest) { (data, response, error) in
			if let error = error ?? self.validateResponseWithExpectedStatusCodes(response, statusCodes: [200]) {
				completionHandler(request as URLRequest, response, [], error)
			} else {
				let (scenes, error) = self.dataToScenes(data)
				completionHandler(request as URLRequest, response, scenes, error)
			}
		}
	}
	
	public func setScenesActivate(_ selector: String, duration: Float, completionHandler: @escaping ((_ request: URLRequest, _ response: URLResponse?, _ results: [Result], _ error: Error?) -> Void)) {
		let request = NSMutableURLRequest(url: baseURL.appendingPathComponent("scenes/\(selector)/activate"))
		let parameters = ["duration", duration] as [Any]
		request.httpMethod = "PUT"
		request.httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: [])

				completionHandler(request as URLRequest, response, [], error)
			} else {
				let (results, error) = self.dataToResults(data)
				completionHandler(request, response, results, error)
			}
		}
	}
