 		}
 	}
 
-	private func setLightsByApplyingFilterWithLights(lights: [Light]) {
+	// MARK: Helpers
+
+	private func updateLights(lights: [Light]) {
 		self.lights = lights.filter(self.selector.toFilter())
 		dirtyCheck()
 	}
 
-	private func lights(lights: [Light], byDeterminingConnectivityWithResults results: [Result]) -> [Light] {
+	private func lightsByDeterminingConnectivityWithResults(lights: [Light], results: [Result]) -> [Light] {
 		return lights.map { (light) in
 			for result in results {
 				if result.id == light.id {


		self.client = client
		clientObserver = client.addObserver { [unowned self] (lights) in
			self.setLightsByApplyingFilterWithLights(lights)
		}

		setLightsByApplyingFilterWithLights(client.lights)
	}

	deinit {
		client.removeObserver(clientObserver)
	}

	public func addObserver(stateDidUpdateHandler: LightTargetObserver.StateDidUpdate) -> LightTargetObserver {
		let observer = LightTargetObserver(stateDidUpdateHandler: stateDidUpdateHandler)

			return light
		}
	}

	// MARK: Dirty Checking

	private func dirtyCheck() {
		var dirty = false
