Creating a distributed system