uses protorpc endpoints