[AS3] Enemys Homing in on Player Movieclip

Just trying to tackle a problem in the following code. Im trying to make a gauntlet/zombie style game where all the enemies home in on the player.

Ive got the code for the enemies homing in, adopting some old AS2 code from a blog I stumbled upon. However once I start randomising the enemies spawn locations, they all follow the same movement of the first enemy spawned.

If im not mistaken I do believe that I need another loop running so each enemy has its individual path to follow, I just cant quite figure out where though. (Or if im completely wrong on this)

Here is the code (all thats in the library is an enemy movieclip with the class name enemy_mc, and a player movieclip on the stage with the instance name of player)

Thanks in advance

var enemyCount:Number = 0;
var maxEnemies:Number = 50;
var enemyTime:Number = 0;
var enemyReadyTime:Number = 30;

var speed:Number = 1;
var turnRate:Number = .2;
var agroRange:Number = 550;

var moveX:Number = 0;
var moveY:Number = 0;

//speed
var myX:Number = 100;
var myY:Number = 100;

var power = 0.3;
var yspeed = 0;
var xspeed = 0;
var friction = 0.93;

var leftDown:Boolean = false;
var rightDown:Boolean = false;
var upDown:Boolean = false;
var downDown:Boolean = false;

var enemy_container:MovieClip;

stage.addEventListener(Event.ENTER_FRAME, follow);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);

enemy_container = new MovieClip;
addChild(enemy_container);


function follow(event:Event) {
    addEnemies();
    for (var k:uint=0; k < enemy_container.numChildren; k++) {
        var en = enemy_container.getChildAt(k);
        doFollow(en, player);
    }
    moveHero();
    render();
}


//checking for key presses
function keyPressed(event:KeyboardEvent):void {
    var keydown = event.keyCode;
    if (keydown == Keyboard.LEFT) {
        leftDown = true;
    }
    if (keydown == Keyboard.RIGHT) {
        rightDown = true;
    }
    if (keydown == Keyboard.UP) {
        upDown = true;
    }
    if (keydown == Keyboard.DOWN) {
        downDown = true;
    }
}
//checking for key releases
function keyReleased(event:KeyboardEvent):void {
    var thisKey:uint = event.keyCode;
    if (thisKey == Keyboard.LEFT) {
        leftDown = false;
    }
    if (thisKey == Keyboard.RIGHT) {
        rightDown = false;
    }
    if (thisKey == Keyboard.UP) {
        upDown = false;
    }
    if (thisKey == Keyboard.DOWN) {
        downDown = false;
    }
}
function moveHero() {
    if (leftDown == true) {
        xspeed -= power;
    }
    if (rightDown == true) {
        xspeed += power;
    }
    if (upDown == true) {
        yspeed -= power;

    }
    if (downDown == true) {
        yspeed += power;

    }
    xspeed *= friction;
    yspeed *= friction;
    myX += xspeed;
    myY += yspeed;

}



function doFollow(follower:MovieClip, target:MovieClip) {

    //calculate distance between follower and target
    var distanceX:Number = target.x-follower.x;
    var distanceY:Number = target.y-follower.y;

    //get total distance as one number
    var distanceTotal = Math.sqrt(distanceX*distanceX+distanceY*distanceY);

    //check if target is within agro range
    if (distanceTotal <= agroRange) {
        //calculate how much to move
        var moveDistanceX:Number = turnRate*distanceX/distanceTotal;
        var moveDistanceY:Number = turnRate*distanceY/distanceTotal;

        //increase current speed
        moveX += moveDistanceX;
        moveY += moveDistanceY;

        //get total move distance
        var totalmove = Math.sqrt(moveX*moveX+moveY*moveY);

        //apply easing
        moveX = speed*moveX/totalmove;
        moveY = speed*moveY/totalmove;

        //move follower
        follower.x += moveX;
        follower.y += moveY;

        //rotate follower toward target
        follower.rotation = 180*Math.atan2(moveY, moveX)/Math.PI;
    }
}

function addEnemies() {

    if (enemyCount < maxEnemies) {
        enemyTime ++;
        if (enemyTime >= enemyReadyTime) {
            enemyTime = 0;
            enemyCount ++;
            var enemy:enemy_mc;
            enemy = new enemy_mc;
            enemy.x = Math.ceil(Math.random()*stage.stageWidth);
            enemy.y = Math.ceil(Math.random()*stage.stageHeight);
            enemy_container.addChild(enemy);
        }
    }
}

function render() {
    player.y = myY;
    player.x = myX;

}