Instantiate/sending info to all clones. - Solved

Its kind of a complex problem, I cant seem to wrap my head around the solution at this time.

I am making a TD game like Baloons TD. Well working on the wave spawn system i have found a bug, and i cant figure it out.

this script spawn the minion in the wave and send some much needed information to the new clone.

    void WaveSpawner(){
        GameObject clone;
        clone = Instantiate (waveMinionArray[waveNumber,spawnCounter],spawnLocation.position, this.transform.rotation)as GameObject;
        clone.GetComponent<Minion>().currentTarget = pathArray[0];
        clone.GetComponent<Minion>().targets = pathArray;
        clone.GetComponent<Minion>().gameManager = gameObject;

        spawnCounter ++;
        currentWaveNumber ++;
    }

I think that the problem is here, somewhere. if i just spawn one minion, it moves threw the game no problem. but when i spawn TWO, the pathfinder gets scrambled for both of them. This tells me that the gamemanager isn’t just sending the new clone the information, but sending all the clones the information. resetting the array i am using for the simple pathing.

I feel like the fix is simple, but i dont see it.

Just to help everyone see, here is the minion script.

using UnityEngine;
using System.Collections;

public class Minion : MonoBehaviour {
    public string minionName;
    public bool popped;
    public int baloonValue;
    public Transform[] targets;
    public Transform currentTarget;
    private int targetRayNumber;
    public float moveSpeed;
    public GameObject gameManager;
    //private Vector3 thisObjectsPosition;



    // Use this for initialization
    void awake () {
        popped = false;
        //value check.

    }
   
    // Update is called once per frame
    void Update () {

        if(popped != true){
            if(transform.position == currentTarget.transform.position){
                targetRayNumber ++;
                if(targetRayNumber >= targets.Length){
                    MadeItTheEnd();
                    return;
                }else{
                    currentTarget.position = targets[targetRayNumber].position;
                }
            }else{
                Move();
            }
        }else
        Destroy(gameObject);
    }
    void Move () {
        transform.position = Vector3.MoveTowards(transform.position, currentTarget.position, moveSpeed * Time.deltaTime);
    }
    void MadeItTheEnd(){
        Debug.Log("MadeItTheEnd called");
        gameManager.SendMessage("MadeItTheEnd");
    }
    void Pop(){
        Debug.Log("AddCr called");
        gameManager.SendMessage("AddCr", baloonValue );
        popped = true;
    }

I figured out my problem. i was moving the path when i wanted to just fallow it.

Fixed

                }else{
                    currentTarget = targets[targetRayNumber];
                }