diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+0.9.0.5
+---
+* smaller minimum plot size
+* use correct gtk column packing function
+
 0.9.0.4
 ---
 * code cleanup
diff --git a/Plot-ho-matic.cabal b/Plot-ho-matic.cabal
--- a/Plot-ho-matic.cabal
+++ b/Plot-ho-matic.cabal
@@ -1,5 +1,5 @@
 name:                Plot-ho-matic
-version:             0.9.0.4
+version:             0.9.0.5
 synopsis:            Real-time line plotter for generic data
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/PlotHo/GraphWidget.hs b/src/PlotHo/GraphWidget.hs
--- a/src/PlotHo/GraphWidget.hs
+++ b/src/PlotHo/GraphWidget.hs
@@ -80,7 +80,7 @@
 
   -- new chart drawing area
   chartCanvas <- Gtk.drawingAreaNew
-  void $ Gtk.widgetSetSizeRequest chartCanvas 250 250
+  void $ Gtk.widgetSetSizeRequest chartCanvas 80 80
 
   -- some mvars for syncronizing rendering with drawing
   needRedrawMVar <- CC.newMVar False
@@ -266,17 +266,17 @@
   Gtk.treeViewSetHeadersVisible treeview True
 
   -- add some columns
-  col1 <- Gtk.treeViewColumnNew
-  col2 <- Gtk.treeViewColumnNew
+  colSignal <- Gtk.treeViewColumnNew
+  colVisible <- Gtk.treeViewColumnNew
 
-  Gtk.treeViewColumnSetTitle col1 "signal"
-  Gtk.treeViewColumnSetTitle col2 "visible?"
+  Gtk.treeViewColumnSetTitle colSignal "signal"
+  Gtk.treeViewColumnSetTitle colVisible "visible?"
 
-  renderer1 <- Gtk.cellRendererTextNew
-  renderer2 <- Gtk.cellRendererToggleNew
+  rendererSignal <- Gtk.cellRendererTextNew
+  rendererVisible <- Gtk.cellRendererToggleNew
 
-  Gtk.cellLayoutPackStart col1 renderer1 True
-  Gtk.cellLayoutPackStart col2 renderer2 True
+  Gtk.treeViewColumnPackStart colSignal rendererSignal True
+  Gtk.treeViewColumnPackStart colVisible rendererVisible True
 
   let showName :: Either String (a -> [[(Double, Double)]]) -> [String] -> String
       -- show a getter name
@@ -288,11 +288,11 @@
       showName (Left typeName) (name:_) = name ++ " (" ++ typeName ++ ")"
       showName (Left _) [] = error "showName on parent got an empty list"
 
-  Gtk.cellLayoutSetAttributes col1 renderer1 treeStore $
+  Gtk.cellLayoutSetAttributes colSignal rendererSignal treeStore $
     \(ListViewInfo {lviName = name, lviTypeOrGetter = typeOrGetter}) ->
       [ Gtk.cellText := showName typeOrGetter (reverse name)
       ]
-  Gtk.cellLayoutSetAttributes col2 renderer2 treeStore $ \lvi -> case lviMarked lvi of
+  Gtk.cellLayoutSetAttributes colVisible rendererVisible treeStore $ \lvi -> case lviMarked lvi of
     On -> [ Gtk.cellToggleInconsistent := False
           , Gtk.cellToggleActive := True
           ]
@@ -303,8 +303,8 @@
                     , Gtk.cellToggleInconsistent := True
                     ]
 
-  void $ Gtk.treeViewAppendColumn treeview col1
-  void $ Gtk.treeViewAppendColumn treeview col2
+  void $ Gtk.treeViewAppendColumn treeview colSignal
+  void $ Gtk.treeViewAppendColumn treeview colVisible
 
 
   let -- update the graph information
@@ -337,7 +337,7 @@
                    Just i -> return i
 
   -- update which y axes are visible
-  _ <- on renderer2 Gtk.cellToggled $ \pathStr -> do
+  _ <- on rendererVisible Gtk.cellToggled $ \pathStr -> do
     let treePath = Gtk.stringToTreePath pathStr
 
         getChildrenPaths path' = do
diff --git a/src/PlotHo/Plotter.hs b/src/PlotHo/Plotter.hs
--- a/src/PlotHo/Plotter.hs
+++ b/src/PlotHo/Plotter.hs
@@ -14,14 +14,16 @@
 
 import qualified GHC.Stats
 
-import Control.Applicative ( liftA2 )
+import Control.Applicative
 import Control.Monad ( void )
 import Control.Monad.IO.Class ( MonadIO(..) )
 import qualified Control.Concurrent as CC
+import Data.Monoid
 import "gtk3" Graphics.UI.Gtk ( AttrOp( (:=) ) )
 import qualified "gtk3" Graphics.UI.Gtk as Gtk
 import Text.Printf ( printf )
 import System.Glib.Signals ( on )
+import Prelude
 
 -- | add channels to this, then run it with 'runPlotter'
 newtype Plotter a = Plotter { unPlotter :: IO (a, [ChannelStuff]) } deriving Functor
