diff --git a/fsl/fslview/controls/lightboxtoolbar.py b/fsl/fslview/controls/lightboxtoolbar.py
index 8508b33b2b2d44e5c8d237888368423062a71634..71a5e36e3793d6ce4a6806cf4528b21bbc830b93 100644
--- a/fsl/fslview/controls/lightboxtoolbar.py
+++ b/fsl/fslview/controls/lightboxtoolbar.py
@@ -6,15 +6,16 @@
 #
 
 
+import props
+
 import fsl.fslview.toolbar as fsltoolbar
+import fsl.fslview.actions as actions
 
 
 class LightBoxToolBar(fsltoolbar.FSLViewToolBar):
 
     def __init__(self, parent, overlayList, displayCtx, lb):
 
-        import fsl.fslview.layouts as layouts
-
         actionz = {'more' : self.showMoreSettings}
         
         fsltoolbar.FSLViewToolBar.__init__(
@@ -22,22 +23,13 @@ class LightBoxToolBar(fsltoolbar.FSLViewToolBar):
         self.lightBoxPanel = lb
 
         sceneOpts = lb.getSceneOptions()
-
-        toolSpecs = layouts.layouts[self]
-
-        # TODO this is dodgy - there needs to be a
-        # way to have this automatically set up.
-        #
-        # 1. Add the ability to associate arbitrary
-        #    data with a toolspec (modify props.ViewItem
-        #    to allow a value to be set)
-        #
-        # 2. Update layouts.widget and actions.ActionButton
-        #    to set that value to the target class
-        #
-        # 3. Here, loop through the toolspecs, check
-        #    the target class, and set the instance
-        #    appropriately
+        toolSpecs = [
+            actions.ActionButton(lb, 'screenshot'),
+            props  .Widget(      'zax'),
+            props  .Widget(      'sliceSpacing', spin=False, showLimits=False),
+            props  .Widget(      'zrange',       spin=False, showLimits=False),
+            props  .Widget(      'zoom',         spin=False, showLimits=False),
+            actions.ActionButton(self, 'more')]
         targets   = {'screenshot'   : lb,
                      'zax'          : sceneOpts,
                      'sliceSpacing' : sceneOpts,
diff --git a/fsl/fslview/controls/orthotoolbar.py b/fsl/fslview/controls/orthotoolbar.py
index 53bad487416ea108ab5c470b8ae83f99cf51f8f7..3a73e833ff501988dff4f71627f0aefb7151e7b7 100644
--- a/fsl/fslview/controls/orthotoolbar.py
+++ b/fsl/fslview/controls/orthotoolbar.py
@@ -6,7 +6,10 @@
 #
 
 
+import props
+
 import fsl.fslview.toolbar as fsltoolbar
+import fsl.fslview.actions as actions
 
 
 class OrthoToolBar(fsltoolbar.FSLViewToolBar):
@@ -14,8 +17,6 @@ class OrthoToolBar(fsltoolbar.FSLViewToolBar):
     
     def __init__(self, parent, overlayList, displayCtx, ortho):
 
-        import fsl.fslview.layouts as layouts
-
         actionz = {'more' : self.showMoreSettings}
         
         fsltoolbar.FSLViewToolBar.__init__(
@@ -24,7 +25,15 @@ class OrthoToolBar(fsltoolbar.FSLViewToolBar):
 
         orthoOpts = ortho.getSceneOptions()
 
-        toolSpecs = layouts.layouts[self]
+        toolSpecs = [
+            actions.ActionButton(ortho, 'screenshot'),
+            props  .Widget(      'zoom', spin=False, showLimits=False),
+            props  .Widget(      'layout'),
+            props  .Widget(      'showXCanvas'),
+            props  .Widget(      'showYCanvas'),
+            props  .Widget(      'showZCanvas'),
+            actions.ActionButton(self, 'more')]
+        
         targets    = {'screenshot'  : ortho,
                       'zoom'        : orthoOpts,
                       'layout'      : orthoOpts,
@@ -39,4 +48,4 @@ class OrthoToolBar(fsltoolbar.FSLViewToolBar):
     def showMoreSettings(self, *a):
         import canvassettingspanel
         self.orthoPanel.togglePanel(
-            canvassettingspanel.CanvasSettingsPanel, True, self.orthoPanel) 
+            canvassettingspanel.CanvasSettingsPanel, True, self.orthoPanel)
diff --git a/fsl/fslview/controls/overlaydisplaytoolbar.py b/fsl/fslview/controls/overlaydisplaytoolbar.py
index f7ea52f7ab39ee5039146067c858b0afcfff5dc6..b60ca7018433805814d7aa71907094be99c92f37 100644
--- a/fsl/fslview/controls/overlaydisplaytoolbar.py
+++ b/fsl/fslview/controls/overlaydisplaytoolbar.py
@@ -33,7 +33,9 @@ _TOOLBAR_PROPS = td.TypeDict({
         props.Widget('contrast',   spin=False, showLimits=False)],
 
     'VolumeOpts' : [
-        props.Widget('cmap')],
+        props.Widget('cmap'),
+        props.Widget('displayRange', showLimits=False)],
+    
 
     'MaskOpts' : [
         props.Widget('colour')],
@@ -172,7 +174,7 @@ class OverlayDisplayToolBar(fsltoolbar.FSLViewToolBar):
         more = props.buildGUI(
             self,
             self,
-            view=actions.ActionButton(type(self), 'more'))
+            view=actions.ActionButton(self, 'more'))
 
         tools .append(more)
         labels.append(None)
diff --git a/fsl/fslview/layouts.py b/fsl/fslview/layouts.py
index e5ad39750a25ac7ddd8f7955addb47be07093cfa..ae1147eca30f2cf32606d34aaf6b5a09327d4263 100644
--- a/fsl/fslview/layouts.py
+++ b/fsl/fslview/layouts.py
@@ -17,15 +17,6 @@ import fsl.fslview.actions as actions
 from fsl.fslview.profiles.orthoviewprofile import OrthoViewProfile
 from fsl.fslview.profiles.orthoeditprofile import OrthoEditProfile
 
-from fsl.fslview.views                     import OrthoPanel
-from fsl.fslview.views                     import LightBoxPanel
-
-from fsl.fslview.controls                  import OrthoToolBar
-from fsl.fslview.controls                  import LightBoxToolBar
-
-from fsl.fslview.displaycontext            import OrthoOpts
-from fsl.fslview.displaycontext            import LightBoxOpts
-
 
 def widget(labelCls, name, *args, **kwargs):
 
@@ -38,15 +29,6 @@ def widget(labelCls, name, *args, **kwargs):
 ########################################
 
 
-OrthoToolBarLayout = [
-    actions.ActionButton(OrthoPanel,   'screenshot'),
-    widget(              OrthoOpts,    'zoom', spin=False, showLimits=False),
-    widget(              OrthoOpts,    'layout'),
-    widget(              OrthoOpts,    'showXCanvas'),
-    widget(              OrthoOpts,    'showYCanvas'),
-    widget(              OrthoOpts,    'showZCanvas'),
-    actions.ActionButton(OrthoToolBar, 'more')]
-
 
 OrthoProfileToolBarViewLayout = [
     actions.ActionButton(OrthoViewProfile, 'resetZoom'),
@@ -80,25 +62,8 @@ OrthoProfileToolBarEditLayout = [
                  enabledWhen=lambda p: p.mode == 'selint')]
 
 
-#######################################
-# LightBoxPanel control panels/toolbars
-#######################################
-
-LightBoxToolBarLayout = [
-    actions.ActionButton(LightBoxPanel, 'screenshot'),
-    widget(              LightBoxOpts, 'zax'),
-    
-    widget(LightBoxOpts, 'sliceSpacing', spin=False, showLimits=False),
-    widget(LightBoxOpts, 'zrange',       spin=False, showLimits=False),
-    widget(LightBoxOpts, 'zoom',         spin=False, showLimits=False),
-    actions.ActionButton(LightBoxToolBar, 'more')]
-
-
 layouts = td.TypeDict({
 
-    'OrthoToolBar'    : OrthoToolBarLayout,
-    'LightBoxToolBar' : LightBoxToolBarLayout,
-
     ('OrthoProfileToolBar', 'view') : OrthoProfileToolBarViewLayout,
     ('OrthoProfileToolBar', 'edit') : OrthoProfileToolBarEditLayout,
 })
diff --git a/fsl/fslview/toolbar.py b/fsl/fslview/toolbar.py
index 512ec43ec729b6f47e6799d8e275bc32b72e0f8f..b56f4836f04d89e2483bd7fea31e9b6c03dad03d 100644
--- a/fsl/fslview/toolbar.py
+++ b/fsl/fslview/toolbar.py
@@ -216,7 +216,7 @@ class FSLViewToolBar(fslpanel._FSLViewPanel, wx.PyPanel):
             tool = props.buildGUI(
                 self, targets[toolSpec.key], toolSpec, showUnlink=False)
 
-            if isinstance(toolSpec, actions.ActionButton):
+            if isinstance(toolSpec, props.Button):
                 label = None
             else: