try better reconnect logic