add reconnect capability