1. Server/Client ---------------- In a Tangence system, one program is distinct in being the server. It is the program that hosts the actual objects being considered. It is also the program that holds the networking socket to which the clients connect. The other programs are all clients, which connect to the server. While each client is notionally distinct, they all share access to the same objects within the server. The clients are not directly aware of each other's existence, though each one's effects on the system may be visible to the others as a result of calling methods or altering properties on the objects. Internally, the clients will use proxy objects through which to access the objects in the server. There will be a one-to-one correspondance between server objects and client proxies. Not every server object needs to have a corresponding proxy in every client - proxies are created lazily when they are required.