             
             let ghostValues = resolver(inputValues: [self.driverConnector: offsetDriverValue])
             
-            if let xPosition = ghostValues[self.xConnector]?.DoubleValue,
-                let yPosition = ghostValues[self.yConnector]?.DoubleValue {
-
-                    let percent = Double(offset) / Double(range)
-                    let ghost = self.createNewGhost(percent: percent)
-                    self.superview?.insertSubview(ghost, belowSubview: self)
-                    ghost.center.x = CGFloat(xPosition)
-                    let toyYZero = self.superview?.frame.size.height ?? 0
-                    ghost.center.y = toyYZero - CGFloat(yPosition)
+            guard let xPosition = ghostValues[self.xConnector]?.DoubleValue,
+                let yPosition = ghostValues[self.yConnector]?.DoubleValue
+                where xPosition.isFinite && yPosition.isFinite else {
+                    continue
             }
+            
+            let percent = Double(offset) / Double(range)
+            let ghost = self.createNewGhost(percent: percent)
+            self.superview?.insertSubview(ghost, belowSubview: self)
+            ghost.center.x = CGFloat(xPosition)
+            let toyYZero = self.superview?.frame.size.height ?? 0
+        
+            ghost.center.y = toyYZero - CGFloat(yPosition)
         }
     }
     

    func update(values: [Connector : SimulationContext.ResolvedValue]) {
        removeAllGhosts()
        
        if let xPosition = values[self.xConnector]?.DoubleValue {
            self.center.x = CGFloat(xPosition)
        }
        if let yPosition = values[self.yConnector]?.DoubleValue {
            let toyYZero = self.superview?.frame.size.height ?? 0
            self.center.y = toyYZero - CGFloat(yPosition)
        }

    }
    
    func update(values: [Connector : SimulationContext.ResolvedValue]) {
        if let diameter = values[self.diameterConnector]?.DoubleValue where diameter.isFinite {
            self.mainCircle.diameter = diameter
        }
        if let circumference = values[self.circumferenceConnector]?.DoubleValue where circumference.isFinite {
            self.mainCircle.circumference = circumference
        }
    }
