added reconnect timeout