diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java
index 6d4b306469422f4fed9df968bc2d5273581c14f6..20fd197177899c9ebb538c829b3b6b64ac807e4d 100644
--- a/xchart/src/main/java/com/xeiam/xchart/Chart.java
+++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java
@@ -254,18 +254,6 @@ public class Chart {
     this.axisPair.yAxis.axisTitle.setText(title);
   }
 
-  // ChartPart visibility ////////////////////////////////
-
-  /**
-   * Set the chart grid lines visibility
-   * 
-   * @param isVisible
-   */
-  public void setGridlinesVisible(boolean isVisible) {
-
-    this.plot.plotSurface.setVisible(isVisible);
-  }
-
   /**
    * Set the chart foreground color - the part the series are drawn on
    * 
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java
index 030fe3320e086c64eba11717a7f5a8aa1b356c72..20207578887045c8bb6356b22614da439f1e4cd5 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java
@@ -26,13 +26,12 @@ import java.util.TimeZone;
 import com.xeiam.xchart.internal.chartpart.Axis.AxisType;
 import com.xeiam.xchart.internal.chartpart.Axis.Direction;
 import com.xeiam.xchart.internal.interfaces.IChartPart;
-import com.xeiam.xchart.internal.interfaces.IHideable;
 import com.xeiam.xchart.internal.misc.AxisValueFormatterUtil;
 
 /**
  * An axis tick
  */
-public class AxisTick implements IChartPart, IHideable {
+public class AxisTick implements IChartPart {
 
   /** the default tick mark step hint for x axis */
   private static final int DEFAULT_TICK_MARK_STEP_HINT_X = 74;
@@ -265,9 +264,4 @@ public class AxisTick implements IChartPart, IHideable {
 
   }
 
-  @Override
-  public void setVisible(boolean isVisible) {
-
-    // this.isVisible = isVisible;
-  }
 }
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java
index 2317d430e7f1bf0ac089448c2a678565a00d256f..fa0391a6a4c9a2bcc071e5e3edb1429ad7f2ab7f 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java
@@ -22,12 +22,11 @@ import java.awt.font.TextLayout;
 import java.awt.geom.AffineTransform;
 
 import com.xeiam.xchart.internal.interfaces.IChartPart;
-import com.xeiam.xchart.internal.interfaces.IHideable;
 
 /**
  * AxisTitle
  */
-public class AxisTitle implements IChartPart, IHideable {
+public class AxisTitle implements IChartPart {
 
   /** parent */
   private final Axis axis;
@@ -58,11 +57,6 @@ public class AxisTitle implements IChartPart, IHideable {
     this.text = text;
   }
 
-  @Override
-  public void setVisible(boolean isVisible) {
-
-  }
-
   @Override
   public Rectangle getBounds() {
 
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java
index 01284ef437b6f1f1eabe85fd9b7ce559855921b8..654db3bd9f03a776c01b47d71ad70d32d77aad37 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java
@@ -22,12 +22,11 @@ import java.awt.font.TextLayout;
 
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.internal.interfaces.IChartPart;
-import com.xeiam.xchart.internal.interfaces.IHideable;
 
 /**
  * Chart Title
  */
-public class ChartTitle implements IChartPart, IHideable {
+public class ChartTitle implements IChartPart {
 
   /** parent */
   private final Chart chart;
@@ -58,11 +57,6 @@ public class ChartTitle implements IChartPart, IHideable {
     this.text = text;
   }
 
-  @Override
-  public void setVisible(boolean isVisible) {
-
-  }
-
   @Override
   public void paint(Graphics2D g) {
 
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java
index 95c8d3a7af263c06a534fe8be80027cf6d54b656..3c1a8793c7645d3cdd459f8ac801d9294727c88e 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java
@@ -23,14 +23,13 @@ import java.util.Map;
 
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.internal.interfaces.IChartPart;
-import com.xeiam.xchart.internal.interfaces.IHideable;
 import com.xeiam.xchart.internal.markers.Marker;
 import com.xeiam.xchart.style.Series;
 
 /**
  * @author timmolter
  */
-public class Legend implements IChartPart, IHideable {
+public class Legend implements IChartPart {
 
   /** parent */
   private final Chart chart;
@@ -48,11 +47,6 @@ public class Legend implements IChartPart, IHideable {
     this.chart = chart;
   }
 
-  @Override
-  public void setVisible(boolean isVisible) {
-
-  }
-
   @Override
   public void paint(Graphics2D g) {
 
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java
index 2942fdc99b77b80743cbdc225416c795a258ce6c..146f766b765f0aa0d71fc7f23e7b1c692116daa0 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java
@@ -22,13 +22,12 @@ import java.awt.Rectangle;
 import java.util.List;
 
 import com.xeiam.xchart.internal.interfaces.IChartPart;
-import com.xeiam.xchart.internal.interfaces.IHideable;
 import com.xeiam.xchart.style.ChartColor;
 
 /**
  * @author timmolter
  */
-public class PlotSurface implements IChartPart, IHideable {
+public class PlotSurface implements IChartPart {
 
   /** parent */
   private Plot plot;
@@ -42,9 +41,6 @@ public class PlotSurface implements IChartPart, IHideable {
   /** the line style */
   private BasicStroke stroke;
 
-  /** the visibility state of PlotSurface */
-  protected boolean isVisible = true; // default to true
-
   /**
    * Constructor
    * 
@@ -78,7 +74,7 @@ public class PlotSurface implements IChartPart, IHideable {
     g.draw(borderRectangle);
 
     // paint grid lines
-    if (isVisible) {
+    if (plot.chart.getStyleManager().isPlotGridLinesVisible()) {
       // horizontal
       List<Integer> yAxisTickLocations = plot.chart.axisPair.yAxis.axisTick.tickLocations;
       for (int i = 0; i < yAxisTickLocations.size(); i++) {
@@ -106,12 +102,6 @@ public class PlotSurface implements IChartPart, IHideable {
     }
   }
 
-  @Override
-  public void setVisible(boolean isVisible) {
-
-    this.isVisible = isVisible;
-  }
-
   /**
    * @param gridLinesColor the gridLinesColor to set
    */
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java b/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java
deleted file mode 100644
index 9c4fb79108cdbee2c938d627a7ff4892bff553f4..0000000000000000000000000000000000000000
--- a/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008-2011 SWTChart project. All rights reserved. 
- * 
- * This code is distributed under the terms of the Eclipse Public License v1.0
- * which is available at http://www.eclipse.org/legal/epl-v10.html
- *******************************************************************************/
-package com.xeiam.xchart.internal.interfaces;
-
-/**
- * ChartParts that can be set visible or not should implement this interface
- * 
- * @author timmolter
- */
-// TODO get rid of this after theme refactor is done
-public interface IHideable extends IChartPart {
-
-  public void setVisible(boolean isVisible);
-
-}
\ No newline at end of file
diff --git a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java
index 2fea5b2e3c68effccb085316840fa6e0359a648f..6988a7446a3650b761706101d1f94a5fd8053b49 100644
--- a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java
+++ b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java
@@ -35,19 +35,23 @@ public class StyleManager {
   /** the default Theme */
   private Theme theme = new XChartTheme();
 
+  // Chart Style ///////////////////////////////
   private Color chartBackgroundColor;
   public Color chartBordersColor;
   public Color chartFontColor;
   private int chartPadding;
 
+  // Chart Title ///////////////////////////////
   private Font chartTitleFont;
   private boolean isChartTitleVisible;
 
+  // Chart Legend ///////////////////////////////
   private boolean isLegendVisible;
   private Color legendBackgroundColor;
   private Font legendFont;
   private int legendPadding;
 
+  // Chart Axes ///////////////////////////////
   private boolean xAxisTitleVisible;
   private boolean yAxisTitleVisible;
   private Font axisTitleFont;
@@ -60,6 +64,9 @@ public class StyleManager {
   private int plotPadding;
   private int axisTitlePadding;
 
+  // Chart Plot Area ///////////////////////////////
+  private boolean isPlotGridLinesVisible;
+
   /**
    * Constructor
    */
@@ -70,19 +77,22 @@ public class StyleManager {
 
   private void setAllStyles() {
 
-    // chart
+    // Chart Style ///////////////////////////////
     chartBackgroundColor = theme.getChartBackgroundColor();
     chartBordersColor = theme.getChartBordersColor();
     chartFontColor = theme.getChartFontColor();
     chartPadding = theme.getChartPadding();
-    // chart title
+
+    // Chart Title ///////////////////////////////
     chartTitleFont = theme.getChartTitleFont();
     isChartTitleVisible = theme.isChartTitleVisible();
+
     // legend
     isLegendVisible = theme.isLegendVisible();
     legendBackgroundColor = theme.getLegendBackgroundColor();
     legendFont = theme.getLegendFont();
     legendPadding = theme.getLegendPadding();
+
     // axes
     xAxisTitleVisible = theme.isXAxisTitleVisible();
     yAxisTitleVisible = theme.isYAxisTitleVisible();
@@ -95,6 +105,9 @@ public class StyleManager {
     isAxisTicksLineVisible = theme.isAxisTicksLineVisible();
     plotPadding = theme.getPlotPadding();
     axisTitlePadding = theme.getAxisTitlePadding();
+
+    // Chart Plot Area ///////////////////////////////
+    isPlotGridLinesVisible = theme.isPlotGridLinesVisible();
   }
 
   /**
@@ -456,4 +469,21 @@ public class StyleManager {
 
     return axisTitlePadding;
   }
+
+  // Chart Plot Area ///////////////////////////////
+
+  /**
+   * sets the visibility of the gridlines on the plot area
+   * 
+   * @param isPlotGridLinesVisible
+   */
+  public void setPlotGridLinesVisible(boolean isPlotGridLinesVisible) {
+
+    this.isPlotGridLinesVisible = isPlotGridLinesVisible;
+  }
+
+  public boolean isPlotGridLinesVisible() {
+
+    return isPlotGridLinesVisible;
+  }
 }
diff --git a/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java b/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java
index 87abdcec54d28c75483bd21f3c9603b86ef5c767..b31cefa25b2e73696dbeffb635659ce37adcfd47 100644
--- a/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java
+++ b/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java
@@ -79,4 +79,8 @@ public interface Theme {
 
   public int getPlotPadding();
 
+  // Chart Plot Area ///////////////////////////////
+
+  public boolean isPlotGridLinesVisible();
+
 }
diff --git a/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java b/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java
index 93ed3b98c22a98b18208e0f9cbd4e7a876a0a9a6..86d69e425bfa4fdd2d8fc65366083000b178ac3e 100644
--- a/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java
+++ b/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java
@@ -97,6 +97,8 @@ public class XChartTheme implements Theme {
     return 10;
   }
 
+  // Chart Axes ///////////////////////////////
+
   @Override
   public boolean isXAxisTitleVisible() {
 
@@ -162,4 +164,12 @@ public class XChartTheme implements Theme {
 
     return 10;
   }
+
+  // Chart Plot Area ///////////////////////////////
+
+  @Override
+  public boolean isPlotGridLinesVisible() {
+
+    return true;
+  }
 }