Continuously spawn and delete nodes

I want to spawn a node every 5 seconds and then delete the node when it reaches a certain position.
I have created code to this but I get a stutter effect.

I spawn a new node

    let spawnNode = SCNNode();
    let spawnAction ={ node in
    let delayAction = SCNAction.wait(duration: 5, withRange: 5);
    spawnNode.runAction(SCNAction.repeatForever(SCNAction.sequence([delayAction, spawnAction])));

The node that is created and added to the scene

    let carNode = carScene!.rootNode.childNode(withName: "enemy1", recursively: false)!.clone() as SCNNode = "Car"
    carNode.scale = SCNVector3(0.25, 0.25, 0.25);
    carNode.position = SCNVector3(x: 25, y: (self._Gplatform?.position.y)! + 0.5, z: self.ArrayOfGroundPositions())
    let moveAction = SCNAction.move(by: SCNVector3(x: -50.0, y: 0.0, z: 0.0), duration: 5.0)
    let removeAction = { node -> Void in
    carNode.runAction(SCNAction.sequence([moveAction, removeAction]))

If anyone can guide me in the right direction It would be very helpful.