improve reconnect