Serial.read problem

Hello
As the title suggests I am having a problem with Serial.read on my Arduino Mega, I am trying to make 6 servo's carry out pre programmed commands using the serial.
I am entirely self taught so I am at your mercy whether I have done this correctly. I have created two example functions, one to make the shoulder servo nod (Move) once and another to return it to the default position (Defa). the problem begins when i enter the words into the serial monitor, both commands seem to make the shoulder nod 3 times and return to default. I have tried deleting certain parts of code and arranging it differently but i get the same result.
I suspect I am not writing out the serial.read command correctly but I am at a loss now. Can someone point me in the right direction please!

#include <VarSpeedServo.h>

VarSpeedServo Grip;
VarSpeedServo GripR;
VarSpeedServo Wrist;
VarSpeedServo Elbow;
VarSpeedServo Shoulder;
VarSpeedServo Base;

char Move;
char Defa;

const int GS = 70;
const int MS1 = 16;
const int MS2 = 48;

void setup () {
  Grip.attach(53,600,2400);
  GripR.attach(51,600,2400);
  Wrist.attach(49,600,2400);
  Elbow.attach(47,600,2400);
  Shoulder.attach(45,600,2400);
  Base.attach(43,600,2400);

  Serial.begin(9600); 
}


void loop () {

  if (Serial.available() ) {
    Move = Serial.read();
    ShoulderMove();
  }

  if  (Serial.available() ) {
    Defa = Serial.read();
    Default();
  }
}

int ShoulderMove() {
  Shoulder.slowmove(70,MS1);
  Serial.print("A");
  delay(1500);
  Shoulder.slowmove(110,MS1);
  Serial.print("B");
  delay(1500);
}


int Default () {
  Grip.slowmove(90,MS1);
  GripR.slowmove(90,MS1);
  Wrist.slowmove(90,MS1);
  Elbow.slowmove(90,MS1);
  Shoulder.slowmove(90,MS1);
  Base.slowmove(90,MS1);
}

You don't even bother checking the value of what you read, so how can you expect your sketch to differentiate between the commands? What exactly are you typing into the serial monitor? Are they single characters, or "words" as you described? Single characters are easier to check than strings, but that's not to say you can't do it with strings.

Multiple servo test code

//zoomkat 11-22-12 simple delimited ',' string parse 
//from serial port input (via serial monitor)
//and print result out serial port
//multi servos added 

String readString;
#include <Servo.h> 
Servo myservoa, myservob, myservoc, myservod;  // create servo object to control a servo 

void setup() {
  Serial.begin(9600);

  //myservoa.writeMicroseconds(1500); //set initial servo position if desired

  myservoa.attach(6);  //the pin for the servoa control
  myservob.attach(7);  //the pin for the servob control
  myservoc.attach(8);  //the pin for the servoc control
  myservod.attach(9);  //the pin for the servod control 
  Serial.println("multi-servo-delimit-test-dual-input-11-22-12"); // so I can keep track of what is loaded
}

void loop() {

  //expect single strings like 700a, or 1500c, or 2000d,
  //or like 30c, or 90a, or 180d,
  //or combined like 30c,180b,70a,120d,

  if (Serial.available())  {
    char c = Serial.read();  //gets one byte from serial buffer
    if (c == ',') {
      if (readString.length() >1) {
        Serial.println(readString); //prints string to serial port out

        int n = readString.toInt();  //convert readString into a number

        // auto select appropriate value, copied from someone elses code.
        if(n >= 500)
        {
          Serial.print("writing Microseconds: ");
          Serial.println(n);
          if(readString.indexOf('a') >0) myservoa.writeMicroseconds(n);
          if(readString.indexOf('b') >0) myservob.writeMicroseconds(n);
          if(readString.indexOf('c') >0) myservoc.writeMicroseconds(n);
          if(readString.indexOf('d') >0) myservod.writeMicroseconds(n);
        }
        else
        {   
          Serial.print("writing Angle: ");
          Serial.println(n);
          if(readString.indexOf('a') >0) myservoa.write(n);
          if(readString.indexOf('b') >0) myservob.write(n);
          if(readString.indexOf('c') >0) myservoc.write(n);
          if(readString.indexOf('d') >0) myservod.write(n);
        }
         readString=""; //clears variable for new input
      }
    }  
    else {     
      readString += c; //makes the string readString
    }
  }
}