automatically reconnect if needed in monitor()