public NestResult Start(IEggParameters parameters)
        {
            host = parameters.Host;
            var configuration = pofSerializer.Deserialize <TrinketStartupConfiguration>(streamFactory.CreateMemoryStream(parameters.Arguments).Reader);

            trinketDtpServer = trinketDtpServerFactory.Create(configuration);
            var trinketBridge = new TrinketBridgeImpl(temporaryFileService, processInjectionService, trinketInternalUtilities, configuration, trinketDtpServer);

            keepaliveObjects.Add(trinketBridge);
            var injectionSuccessful = trinketBridge.Initialize();

            if (injectionSuccessful)
            {
                var process = processProxy.GetProcessById(configuration.TargetProcessId);
                process.Exited += (o, s) => {
                    Shutdown(ShutdownReason.None);
                };
                process.EnableRaisingEvents = true;
            }

            return(injectionSuccessful ? NestResult.Success : NestResult.Failure);
        }