Maybe the TimeSpans can be made nullable (TimeSpan?) so that null can convey the use of the default instead of this somewhat more complex default(TimeSpan) logic.