don't rely on `onConnect` being a thing