moved communication stuff to client package