api changes to internal client, beginning work on .join