@Override
  public void execute(DataContainer dataContainer) {
    Data currentData = dataContainer.getData();
    TransactionManager transactionManager = dataContainer.getTransactionManager();

    // get old value and decrement it's count
    String oldValue = currentData.getKeyValue(name);
    if (oldValue == null) {
      oldValue = transactionManager.getMostRecentValueForKey(name);
    }
    if (oldValue != null) {
      Integer decrementedOccurrenceCount =
          getOccurrenceCountFromAllTransaction(oldValue, dataContainer) - 1;
      currentData.setValueCount(oldValue, decrementedOccurrenceCount);
    }

    // delete and mark key as deleted
    currentData.unsetKey(name);
    System.out.println();
  }