force().remove(index);
otherProperties.remove(index);
  protected synchronized PropertyGroup removeLocalPG(Class c) {    // Better be a property group    // Need to verify because otherProperties contains both PGs and     // PGSchedules. Don't want to allow caller to remove an unspecified     // PGSchedule     if (!PropertyGroup.class.isAssignableFrom(c)) {      throw new IllegalArgumentException();    }    PropertyGroup removed = null;    // Use removeOtherPropertyGroupSchedule to remove entire schedules.    if (TimePhasedPropertyGroup.class.isAssignableFrom(c)) {      int index = findLocalPGScheduleIndex(c);      if (index >=0) {        PropertyGroupSchedule pgs = (PropertyGroupSchedule) force().get(index);        removed = pgs.getDefault();        if ((removed == null) &&            (pgs.size() > 0)) {          removed = (PropertyGroup) pgs.get(0);        }        force().remove(index);      }    } else {      int index = findLocalPGIndex(c);      if (index >= 0) {        removed = (PropertyGroup) force().get(index);        force().remove(index);      }    }     return removed;  }