If you just set _lastActiveAt in Connection.StartTransport before you call _monitor.Start you can get rid of this setter. This means that you don't have to change IConnection.