connector is async
cleanup
callbacks with channels always return connected channel in set optional or empty optional (no null ptrs)