organize LocalClient a bit more, split out listen & connect workers; still significant work to be done here