public IObservable <Unit> Run(IPlanet planet) { return(Observable.Defer(() => { this.container.BindInstance(planet); return scenes.Add(Scene.Game) .ContinueWith(this.input.OnBack.Take(1)) .DoOnError(Debug.LogException) .CatchIgnore() .DoOnTerminate(() => this.container.Unbind <IPlanet>()) .ContinueWith(scenes.Unload(Scene.Game)); })); }