diff --git a/runtime/ui/status_controller.go b/runtime/ui/status_controller.go
index 964332d..31f7ce9 100644
--- a/runtime/ui/status_controller.go
+++ b/runtime/ui/status_controller.go
@@ -84,9 +84,6 @@ func (controller *statusController) Render() error {
 
 // KeyHelp indicates all the possible global actions a user can take when any pane is selected.
 func (controller *statusController) KeyHelp() string {
-	// return renderStatusOption(globalKeybinding.quit[0].String(), "Quit", false) +
-	// 	renderStatusOption(globalKeybinding.toggleView[0].String(), "Switch view", false) +
-	// 	renderStatusOption(globalKeybinding.filterView[0].String(), "Filter", controllers.Filter.IsVisible())
 	var help string
 	for _, binding := range controller.helpKeys {
 		help += binding.RenderKeyHelp()
diff --git a/runtime/ui/ui.go b/runtime/ui/ui.go
index 93f4118..3859c35 100644
--- a/runtime/ui/ui.go
+++ b/runtime/ui/ui.go
@@ -3,7 +3,6 @@ package ui
 import (
 	"errors"
 	"github.com/wagoodman/dive/dive/image"
-	"github.com/wagoodman/dive/runtime/ui/format"
 	"github.com/wagoodman/dive/runtime/ui/key"
 	"sync"
 
@@ -16,60 +15,80 @@ import (
 const debug = false
 
 // type global
-type Ui struct {
+type app struct {
+	gui *gocui.Gui
 	controllers *controllerCollection
 }
 
 var (
-	once        sync.Once
-	uiSingleton *Ui
+	once         sync.Once
+	appSingleton *app
 )
 
-func NewUi(g *gocui.Gui, analysis *image.AnalysisResult, cache filetree.TreeCache) (*Ui, error) {
+func newApp(gui *gocui.Gui, analysis *image.AnalysisResult, cache filetree.TreeCache) (*app, error) {
 	var err error
 	once.Do(func() {
 		var theControls *controllerCollection
 		var globalHelpKeys []*key.Binding
 
-		theControls, err = newControllerCollection(g, analysis, cache)
+		theControls, err = newControllerCollection(gui, analysis, cache)
 		if err != nil {
 			return
 		}
 
+		gui.Cursor = false
+		//g.Mouse = true
+		gui.SetManagerFunc(layout)
+
+		// var profileObj = profile.Start(profile.CPUProfile, profile.ProfilePath("."), profile.NoShutdownHook)
+		//
+		// onExit = func() {
+		// 	profileObj.Stop()
+		// }
+
+
+		appSingleton = &app{
+			gui:         gui,
+			controllers: theControls,
+		}
+
 		var infos = []key.BindingInfo{
 			{
 				ConfigKeys: []string{"keybinding.quit"},
 				OnAction:   quit,
-				Display:    "Removed",
+				Display:    "Quit",
 			},
 			{
 				ConfigKeys: []string{"keybinding.toggle-view"},
-				OnAction:   quit,
-				// OnAction:   toggleView,
-				Display:    "Modified",
+				OnAction:   appSingleton.toggleView,
+				Display:    "Switch view",
 			},
 			{
 				ConfigKeys: []string{"keybinding.filter-files"},
-				OnAction:   quit,
-				// OnAction:   toggleFilterView,
+				OnAction:   appSingleton.toggleFilterView,
 				IsSelected: controllers.Filter.IsVisible,
-				Display:    "Unmodified",
+				Display:    "Filter",
 			},
 		}
 
-		globalHelpKeys, err = key.GenerateBindings(g, "", infos)
+		globalHelpKeys, err = key.GenerateBindings(gui, "", infos)
 		if err != nil {
 			return
 		}
 
 		theControls.Status.AddHelpKeys(globalHelpKeys...)
 
-		uiSingleton = &Ui{
-			controllers: theControls,
+
+		// perform the first update and render now that all resources have been loaded
+		err = UpdateAndRender()
+		if err != nil {
+			return
 		}
+
+
 	})
 
-	return uiSingleton, err
+	return appSingleton, err
 }
 
 // var profileObj = profile.Start(profile.MemProfile, profile.ProfilePath("."), profile.NoShutdownHook)
@@ -107,12 +126,12 @@ func UpdateAndRender() error {
 }
 
 // toggleView switches between the file view and the layer view and re-renders the screen.
-func toggleView(g *gocui.Gui) (err error) {
-	v := g.CurrentView()
+func (ui *app) toggleView() (err error) {
+	v := ui.gui.CurrentView()
 	if v == nil || v.Name() == controllers.Layer.name {
-		_, err = g.SetCurrentView(controllers.Tree.name)
+		_, err = ui.gui.SetCurrentView(controllers.Tree.name)
 	} else {
-		_, err = g.SetCurrentView(controllers.Layer.name)
+		_, err = ui.gui.SetCurrentView(controllers.Layer.name)
 	}
 
 	if err != nil {
@@ -124,7 +143,7 @@ func toggleView(g *gocui.Gui) (err error) {
 }
 
 // toggleFilterView shows/hides the file tree filter pane.
-func toggleFilterView(g *gocui.Gui) error {
+func (ui *app) toggleFilterView() error {
 	// delete all user input from the tree view
 	controllers.Filter.view.Clear()
 
@@ -132,7 +151,7 @@ func toggleFilterView(g *gocui.Gui) error {
 	controllers.Filter.hidden = !controllers.Filter.hidden
 
 	if !controllers.Filter.hidden {
-		_, err := g.SetCurrentView(controllers.Filter.name)
+		_, err := ui.gui.SetCurrentView(controllers.Filter.name)
 		if err != nil {
 			logrus.Error("unable to toggle filter view: ", err)
 			return err
@@ -140,7 +159,7 @@ func toggleFilterView(g *gocui.Gui) error {
 		return UpdateAndRender()
 	}
 
-	err := toggleView(g)
+	err := ui.toggleView()
 	if err != nil {
 		logrus.Error("unable to toggle filter view (back): ", err)
 		return err
@@ -365,15 +384,6 @@ func Render() error {
 	return nil
 }
 
-// renderStatusOption formats key help bindings-to-title pairs.
-func renderStatusOption(control, title string, selected bool) string {
-	if selected {
-		return format.StatusSelected("▏") + format.StatusControlSelected(control) + format.StatusSelected(" "+title+" ")
-	} else {
-		return format.StatusNormal("▏") + format.StatusControlNormal(control) + format.StatusNormal(" "+title+" ")
-	}
-}
-
 // Run is the UI entrypoint.
 func Run(analysis *image.AnalysisResult, cache filetree.TreeCache) error {
 	var err error
@@ -384,51 +394,7 @@ func Run(analysis *image.AnalysisResult, cache filetree.TreeCache) error {
 	}
 	defer g.Close()
 
-	_, err = newControllerCollection(g, analysis, cache)
-	if err != nil {
-		return err
-	}
-
-	g.Cursor = false
-	//g.Mouse = true
-	g.SetManagerFunc(layout)
-
-	// var profileObj = profile.Start(profile.CPUProfile, profile.ProfilePath("."), profile.NoShutdownHook)
-	//
-	// onExit = func() {
-	// 	profileObj.Stop()
-	// }
-
-
-	var infos = []key.BindingInfo{
-		{
-			ConfigKeys: []string{"keybinding.quit"},
-			OnAction:   quit,
-			Display:    "Removed",
-		},
-		{
-			ConfigKeys: []string{"keybinding.toggle-view"},
-			OnAction:   quit,
-			// OnAction:   toggleView,
-			Display:    "Modified",
-		},
-		{
-			ConfigKeys: []string{"keybinding.filter-files"},
-			OnAction:   quit,
-			// OnAction:   toggleFilterView,
-			// IsSelected: controllers.Filter.IsVisible,
-			Display:    "Unmodified",
-		},
-	}
-
-	globalHelpKeys, err := key.GenerateBindings(g, "", infos)
-	if err != nil {
-		return err
-	}
-	controllers.Status.AddHelpKeys(globalHelpKeys...)
-
-	// perform the first update and render now that all resources have been loaded
-	err = UpdateAndRender()
+	_, err = newApp(g, analysis, cache)
 	if err != nil {
 		return err
 	}