public void Start() { QuestionUser = ((x) => UserDialog?.Invoke(x)); Write = ((x, z) => WriteToConsole?.Invoke(x, z)); WriteLine = ((x, z) => WriteLineToConsole?.Invoke(x, z)); ThreadPool.QueueUserWorkItem(obj => { if (!FirstTimeSetup(QuestionUser)) { throw new Exception("First Time Params Not Set"); } IRCClient.Start(HandleUserCommands, Twitch.TwitchAPI._channel); TwitchAPI.Init(); VoteSystem.Init(); UserManager.Init(); IRCClient.Init(ConsoleWrite); MemorySystem._instance.Init(); Microphone.Init(); }); }