split client.js core functions into plugins (#31), fix join function, refactor names.js