public void RememberNew(T item) { var eventArgs = _history.IsEmpty() ? HistoryEventArgs <T> .OnlyCurrentItem( currentItem : item) : HistoryEventArgs <T> .BothItems( currentItem : item, previousItem : CurrentItem); AddNewItem(item); NewItemRemembered?.Invoke(this, eventArgs); OverflowIfNecessary(eventArgs); }