code: func NewInterval(c context.Context, start, end time.Time) Interval {
  	i := Interval{Started: start, Finished: end}
  	if start.IsZero() {
  		return i
  	}
  	if end.IsZero() {
  		i.Duration = clock.Now(c).Sub(start)
  	} else {
  		i.Duration = end.Sub(start)
  	}
  	return i
  }
docs: // NewInterval returns a new interval struct.  If end time is empty (eg. Not completed)
  // set end time to empty but set duration to the difference between start and now.
  // Getting called with an empty start time and non-empty end time is undefined.