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); }