public History(IHistoryStrategy<T> historyStrategy, EventBus eventBus) {
		this.historyStrategy = Preconditions.checkNotNull(historyStrategy, "The history strategy for the history manager cannot be empty.");
		this.eventBus = Preconditions.checkNotNull(eventBus, "The history manager needs an event bus.");
		
		this.pastOperations = new LinkedList<>();
		this.futureOperations = new LinkedList<>();
		this.commandInformation = new LinkedHashMap<>();
		this.baseCommand = this.historyStrategy.getBaseCommand();
		this.commandInformation.put(this.baseCommand, this.buildCommandInfo(baseCommand, true));
	}