*much reworked, client can now expose too, server can call those exposed methods