we need to figure out auto-reconnection