diff --git a/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs b/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs
index 87642f3004..7be7d24860 100644
--- a/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs
+++ b/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs
@@ -19,17 +19,22 @@ namespace osu.Desktop.Tests
         {
             base.Reset();
 
-            KeyCounterCollection kc = new KeyCounterCollection
+            Children = new[]
             {
-                Origin = Anchor.Centre,
-                Anchor = Anchor.Centre,
-                IsCounting = true
+                new KeyCounterCollection
+                {
+                    Origin = Anchor.Centre,
+                    Anchor = Anchor.Centre,
+                    IsCounting = true,
+                    Counters = new KeyCounter[]
+                    {
+                        new KeyCounterKeyboard(@"Z", Key.Z),
+                        new KeyCounterKeyboard(@"X", Key.X),
+                        new KeyCounterMouse(@"M1", MouseButton.Left),
+                        new KeyCounterMouse(@"M2", MouseButton.Right),
+                    },
+                },
             };
-            Add(kc);
-            kc.AddKey(new KeyCounterKeyboard(@"Z", Key.Z));
-            kc.AddKey(new KeyCounterKeyboard(@"X", Key.X));
-            kc.AddKey(new KeyCounterMouse(@"M1", MouseButton.Left));
-            kc.AddKey(new KeyCounterMouse(@"M2", MouseButton.Right));
         }
     }
 }
diff --git a/osu.Game/GameModes/Menu/ButtonSystem.cs b/osu.Game/GameModes/Menu/ButtonSystem.cs
index 87a78c335d..93701e6c18 100644
--- a/osu.Game/GameModes/Menu/ButtonSystem.cs
+++ b/osu.Game/GameModes/Menu/ButtonSystem.cs
@@ -113,14 +113,17 @@ namespace osu.Game.GameModes.Menu
 
             buttonFlow.Position = new Vector2(wedge_width * 2 - (button_width + osuLogo.SizeForFlow / 4), 0);
 
-            buttonsPlay.Add((Button)buttonFlow.Add(new Button(@"solo", @"freeplay", FontAwesome.user, new Color4(102, 68, 204, 255), OnSolo, wedge_width, Key.P)));
-            buttonsPlay.Add((Button)buttonFlow.Add(new Button(@"multi", @"multiplayer", FontAwesome.users, new Color4(94, 63, 186, 255), OnMulti, 0, Key.M)));
-            buttonsPlay.Add((Button)buttonFlow.Add(new Button(@"chart", @"charts", FontAwesome.fa_osu_charts, new Color4(80, 53, 160, 255), OnChart)));
+            buttonsPlay.Add(new Button(@"solo", @"freeplay", FontAwesome.user, new Color4(102, 68, 204, 255), OnSolo, wedge_width, Key.P));
+            buttonsPlay.Add(new Button(@"multi", @"multiplayer", FontAwesome.users, new Color4(94, 63, 186, 255), OnMulti, 0, Key.M));
+            buttonsPlay.Add(new Button(@"chart", @"charts", FontAwesome.fa_osu_charts, new Color4(80, 53, 160, 255), OnChart));
 
-            buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"play", @"play", FontAwesome.fa_osu_logo, new Color4(102, 68, 204, 255), onPlay, wedge_width, Key.P)));
-            buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"osu!editor", @"edit", FontAwesome.fa_osu_edit_o, new Color4(238, 170, 0, 255), OnEdit, 0, Key.E)));
-            buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"osu!direct", @"direct", FontAwesome.fa_osu_chevron_down_o, new Color4(165, 204, 0, 255), OnDirect, 0, Key.D)));
-            buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"exit", @"exit", FontAwesome.fa_osu_cross_o, new Color4(238, 51, 153, 255), onExit, 0, Key.Q)));
+            buttonsTopLevel.Add(new Button(@"play", @"play", FontAwesome.fa_osu_logo, new Color4(102, 68, 204, 255), onPlay, wedge_width, Key.P));
+            buttonsTopLevel.Add(new Button(@"osu!editor", @"edit", FontAwesome.fa_osu_edit_o, new Color4(238, 170, 0, 255), OnEdit, 0, Key.E));
+            buttonsTopLevel.Add(new Button(@"osu!direct", @"direct", FontAwesome.fa_osu_chevron_down_o, new Color4(165, 204, 0, 255), OnDirect, 0, Key.D));
+            buttonsTopLevel.Add(new Button(@"exit", @"exit", FontAwesome.fa_osu_cross_o, new Color4(238, 51, 153, 255), onExit, 0, Key.Q));
+
+            buttonFlow.Add(buttonsPlay);
+            buttonFlow.Add(buttonsTopLevel);
         }
 
         protected override bool OnKeyDown(InputState state, KeyDownEventArgs args)
diff --git a/osu.Game/GameModes/Menu/Intro.cs b/osu.Game/GameModes/Menu/Intro.cs
index 30ca6f931c..e70b2639cf 100644
--- a/osu.Game/GameModes/Menu/Intro.cs
+++ b/osu.Game/GameModes/Menu/Intro.cs
@@ -44,18 +44,17 @@ namespace osu.Game.GameModes.Menu
             AudioTrack bgm = Game.Audio.Track.Get(@"circles");
             bgm.Looping = true;
 
-            Game.Scheduler.Add(delegate
+            Scheduler.Add(delegate
             {
                 welcome.Play();
-            }, true);
+            });
 
-
-            Game.Scheduler.AddDelayed(delegate
+            Scheduler.AddDelayed(delegate
             {
                 bgm.Start();
             }, 600);
 
-            Game.Scheduler.AddDelayed(delegate
+            Scheduler.AddDelayed(delegate
             {
                 DidLoadMenu = true;
                 Push(new MainMenu());
@@ -82,7 +81,7 @@ namespace osu.Game.GameModes.Menu
         protected override void OnResuming(GameMode last)
         {
             //we are just an intro. if we are resumed, we just want to exit after a short delay (to allow the last mode to transition out).
-            Game.Scheduler.AddDelayed(Exit, 300);
+            Scheduler.AddDelayed(Exit, 300);
 
             base.OnResuming(last);
         }
diff --git a/osu.Game/GameModes/Menu/MainMenu.cs b/osu.Game/GameModes/Menu/MainMenu.cs
index 3ee28f5d03..e74c83e03d 100644
--- a/osu.Game/GameModes/Menu/MainMenu.cs
+++ b/osu.Game/GameModes/Menu/MainMenu.cs
@@ -47,7 +47,7 @@ namespace osu.Game.GameModes.Menu
                             OnSolo = delegate { Push(new PlaySongSelect()); },
                             OnMulti = delegate { Push(new Lobby()); },
                             OnTest  = delegate { Push(new TestBrowser()); },
-                            OnExit = delegate { Game.Scheduler.AddDelayed(Exit, ButtonSystem.EXIT_DELAY); },
+                            OnExit = delegate { Scheduler.AddDelayed(Exit, ButtonSystem.EXIT_DELAY); },
                             OnSettings = delegate {
                                 osu.Options.PoppedOut = !osu.Options.PoppedOut;
                             },
diff --git a/osu.Game/GameModes/OsuGameMode.cs b/osu.Game/GameModes/OsuGameMode.cs
index d81d30f0d5..b0928d8214 100644
--- a/osu.Game/GameModes/OsuGameMode.cs
+++ b/osu.Game/GameModes/OsuGameMode.cs
@@ -41,7 +41,7 @@ namespace osu.Game.GameModes
             }
             else if (bg != null)
             {
-                AddTopLevel(new ParallaxContainer
+                AddInternal(new ParallaxContainer
                 {
                     Depth = float.MinValue,
                     Children = new[]
@@ -51,7 +51,6 @@ namespace osu.Game.GameModes
                 });
             }
 
-
             base.OnEntering(last);
         }
 
diff --git a/osu.Game/Graphics/Containers/ParallaxContainer.cs b/osu.Game/Graphics/Containers/ParallaxContainer.cs
index 3c6cb18162..183b0c054a 100644
--- a/osu.Game/Graphics/Containers/ParallaxContainer.cs
+++ b/osu.Game/Graphics/Containers/ParallaxContainer.cs
@@ -14,21 +14,21 @@ namespace osu.Game.Graphics.Containers
         public ParallaxContainer()
         {
             RelativeSizeAxes = Axes.Both;
+            AddInternal(content = new Container()
+            {
+                RelativeSizeAxes = Axes.Both,
+                Anchor = Anchor.Centre,
+                Origin = Anchor.Centre
+            });
         }
 
-        private Container content = new Container()
-        {
-            RelativeSizeAxes = Axes.Both,
-            Anchor = Anchor.Centre,
-            Origin = Anchor.Centre
-        };
+        private Container content;
 
-        protected override Container AddTarget => content;
+        protected override Container Content => content;
 
         public override void Load()
         {
             base.Load();
-            Add(content);
         }
 
         protected override bool OnMouseMove(InputState state)
diff --git a/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs b/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs
index 288d1e2018..c9d22d2f06 100644
--- a/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs
+++ b/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs
@@ -22,18 +22,19 @@ namespace osu.Game.Graphics.UserInterface
             set
             {
                 foreach (var k in value)
-                    AddKey(k);
+                    addKey(k);
+
+                Children = value;
             }
         }
 
-        public void AddKey(KeyCounter key)
+        private void addKey(KeyCounter key)
         {
             counters.Add(key);
-            key.IsCounting = this.IsCounting;
-            key.FadeTime = this.FadeTime;
-            key.KeyDownTextColor = this.KeyDownTextColor;
-            key.KeyUpTextColor = this.KeyUpTextColor;
-            base.Add(key);
+            key.IsCounting = IsCounting;
+            key.FadeTime = FadeTime;
+            key.KeyDownTextColor = KeyDownTextColor;
+            key.KeyUpTextColor = KeyUpTextColor;
         }
 
         public void ResetCount()
diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs
index 87c6c30c51..d8ae0b05a1 100644
--- a/osu.Game/OsuGame.cs
+++ b/osu.Game/OsuGame.cs
@@ -49,7 +49,7 @@ namespace osu.Game
                     OnHome = delegate { MainMenu?.MakeCurrent(); },
                     OnSettings = delegate { Options.PoppedOut = !Options.PoppedOut; },
                     OnPlayModeChange = delegate (PlayMode m) { PlayMode.Value = m; },
-                    Alpha = 0.001f //fixes invalidation fuckup
+                    Alpha = 0.001f,
                 },
                 new VolumeControl
                 {
diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs
index 0f0a9116a0..bd3990d5ef 100644
--- a/osu.Game/OsuGameBase.cs
+++ b/osu.Game/OsuGameBase.cs
@@ -21,7 +21,7 @@ namespace osu.Game
         public Options Options;
         public APIAccess API;
 
-        protected override Container AddTarget => ratioContainer?.IsLoaded == true ? ratioContainer : base.AddTarget;
+        protected override Container Content => ratioContainer?.IsLoaded == true ? ratioContainer : base.Content;
 
         private RatioAdjust ratioContainer;