Angular Undo Redo functionality with the Command Pattern