auto reconnect implemented - HIGHLY EXPERIMENTAL