private void OnHeroDefeated (HeroViewModel sender, HeroDefeatedArgs args)
		{
			var defeatedHeroRow = HeroRows.SingleOrDefault (x => x.Hero.Id == args.DefeatedHero.Id);
			if (defeatedHeroRow != null)
				HeroRows.Remove (defeatedHeroRow);

			args.NewHero.Grace = args.NewHero.GraceDefault;
			args.NewHero.Secrecy = args.NewHero.SecrecyDefault;

			HeroRows.Add (new HeroSummaryViewModel (args.NewHero));

			Task.Run (() => {
				Application.CurrentGame.Heroes = HeroRows.Select(x=> x.Hero).ToList ();
				Application.SaveCurrentGame ();
			});
		}
		private void OnHeroDefeated (HeroViewModel sender, HeroDefeatedArgs args)
		{
			var model = Heroes.FirstOrDefault (x => x.Hero.Id == args.DefeatedHero.Id);
			if (model != null)
				Heroes.Remove (model);

			args.NewHero.Grace = args.NewHero.GraceDefault;
			args.NewHero.Secrecy = args.NewHero.SecrecyDefault;

			Heroes.Add(new HeroSummaryViewModel (args.NewHero));

			Task.Run (() => {
				Application.CurrentGame.Heroes.Active.Remove (args.DefeatedHero);
				Application.CurrentGame.Heroes.Active.Add (args.NewHero);
				Application.SaveCurrentGame ();
			});
		}
		private void OnHeroUpdated(HeroViewModel sender, Hero hero){
			HeroRows.SingleOrDefault (x => x.Hero.Id == hero.Id).Updated ();
		}