lazy connect and retry on fail