class CombinedMaster implements AbstractMaster<D> {

  @Override
  public void remove(final ObjectIdentifiable objectIdentifiable) {
    final M master = getMasterByScheme(objectIdentifiable.getObjectId().getScheme());
    if (master != null) {
      master.remove(objectIdentifiable);
      return;
    }
    (new Try<Void>() {
      @Override
      public Void tryMaster(final M master) {
        master.remove(objectIdentifiable);
        return null;
      }
    }).each(objectIdentifiable.getObjectId().getScheme());
  }

  protected  CombinedMaster(List<M> masterList);

}