use callback instead of event to send back segment list
don't use the connect function as a factory since it emits an event when it is logged in.
rework to use multiple providers as fallbacks for failures