static RunStatus Run(string[] args)
{
Game.Initialize(new Arguments(args));
GC.Collect();
var status = Game.Run();
if (status == RunStatus.Restart)
using (var p = Process.GetCurrentProcess())
Process.Start(Assembly.GetEntryAssembly().Location, p.StartInfo.Arguments);
return status;
}