Use Time.Span.t instead of float for timespans
Add reconnecting client