public NestResult Start(IEggParameters parameters) {
         host = parameters?.Host;

         InitializeLogging();

         ryu = new RyuFactory().Create();
         var clusteringConfiguration = new ClusteringConfigurationImpl(IPAddress.Loopback, kZileanServicePort, ClusteringRole.HostOnly);
         ryu.Set<ClusteringConfiguration>(clusteringConfiguration);
         ryu.Setup();
         ryu.Touch<ItzWartyProxiesRyuPackage>();
         ryu.Touch<ServicesRyuPackage>();
         ryu.Touch<ZileanImplRyuPackage>();
         return NestResult.Success;
      }
 private Gamepad ConstructGamepad(RyuContainer ryu)
 {
     var gamepad = new RemoteGamepad();
      const int kPort = 21337;
      var courierClientFactory = ryu.Get<CourierClientFactory>();
      var courierClient = courierClientFactory.CreateUdpCourierClient(kPort,
     new CourierClientConfiguration {
        Identifier = Guid.NewGuid()
     });
      ryu.Set(courierClient);
      courierClient.RegisterPayloadHandler<GamepadStateDto>(x => gamepad.Update(x.Payload));
      Console.WriteLine("Constructed courier client");
      return gamepad;
 }