public MainWindow() { InitializeComponent(); this.bank = new Bank(); bank.Guard = new Guard(); bank.Gate = new Gate(); bank.Vault = new Vault(); bank.Lazors = new List <Lazor>() { new Lazor(), new Lazor(), new Lazor(), new Lazor(), new Lazor() }; bank.SafeList = new List <Safe>(); Random gen = new Random(); for (int index = 0; index < 100; index++) { var r = gen.Next(0, 1000); bank.SafeList.Add(new Safe(r, index * 10)); } Safe juwels = new Safe(500, 999999); bank.SafeList.Add(juwels); bank.SafeList.OrderBy(s => s.RandomIndex); Thief thief = new Thief(); thief.bank = bank; //1. Do your thing thief thief.OpenGate(); thief.OpenVault(); thief.DodgeLazors(); thief.FindAndOpenSafe(); if (bank.Gate.IsOpen) { Storyboard sb = this.FindResource("OpenDoor") as Storyboard; sb.Completed += sb_Completed; sb.Begin(); } }