what if `_connect` gets called twice? what if connect fails?