protected GhostObserver(Ghost subject)
 {
     //Assign an ID because it will be used to index the dictionary of observers
     //mainly used for removing an observer but also helps us find a specific one
     //if needed.
     AssignID();
     Subject = subject;
     Subject.AttachObserver(this);
 }