public IAddableTag AddTag(IAddableTag tag) { if (tag == null) { throw new ArgumentNullException(nameof(tag)); } StringValueTag that = tag as StringValueTag; if (that == default(StringValueTag)) { throw new InvalidRulesException($"Tried to add tags of different types '{RenderForLog()}' and '{tag.RenderForLog()}'."); } return(new StringValueTag(Key, Value + that.Value, Duration)); }