public ChangeLogDefinition <TState> And(ChangeLogDefinition <TState> definition) { foreach (var pair in definition._handle) { var eventType = pair.Key; var handler = pair.Value; if (_handle.ContainsKey(eventType)) { throw new HandlerIsAlreadyDefinedException(eventType); } _handle[eventType] = handler; } return(this); }