diff --git a/bundles/org.eclipse.rap.rwt.visualization.google.demo/META-INF/MANIFEST.MF b/bundles/org.eclipse.rap.rwt.visualization.google.demo/META-INF/MANIFEST.MF
index c8c74a0..2f72210 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google.demo/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.rap.rwt.visualization.google.demo/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@
 Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.rap.ui,
  org.eclipse.rap.rwt.visualization.google;bundle-version="1.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
 Import-Package: javax.servlet;version="2.4.0",
  javax.servlet.http;version="2.4.0"
 Bundle-Vendor: %Bundle-Vendor
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/Application.java b/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/Application.java
index d97833b..a01f823 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/Application.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/Application.java
@@ -53,7 +53,7 @@
 public class Application implements IEntryPoint {
    
   private static Listener listener = new Listener() {
-     @Override
+     
      public void handleEvent(Event event)
      {
         VisualizationWidget widget = (VisualizationWidget)event.widget;
@@ -72,7 +72,7 @@
   }
   
   public static class MotionExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("Model", "Model", "string", null);
@@ -88,7 +88,6 @@
         viz.setWidgetData(dataTable.toString());
         viz.addStateListener(new StateListener()
         {
-          @Override
           public void stateChanged(String state)
           {
              System.out.println("State Changed: "+state);
@@ -97,12 +96,11 @@
         viz.setToolTipText("Motion Chart");
      }
 
-     @Override
      public void setFocus(){}
   }
   
   public static class TimelineExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("Date", "Date", "date", null);
@@ -118,12 +116,11 @@
         viz.setToolTipText("Annotated Timeline");
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class AreaChartExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("theyear", "Date", "string", null);
@@ -137,12 +134,11 @@
         viz.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class BarChartExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("theyear", "Date", "string", null);
@@ -156,12 +152,11 @@
         barChart.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class ColumnChartExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("theyear", "Date", "string", null);
@@ -174,12 +169,11 @@
         chart.setWidgetData(dataTable.toString());
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class GaugeExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("CO2", "CO2", "number", null);
@@ -191,12 +185,11 @@
         gauge.setWidgetData(dataTable.toString());
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class GeomapExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("Country", "Country", "string", null);
@@ -209,12 +202,11 @@
         geomap.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class IntensityMapExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("Country", "Country", "string", null);
@@ -229,12 +221,11 @@
         intensityMap.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class LineChartExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("Month", "Month", "string", null);
@@ -250,12 +241,11 @@
         lineChart.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class PieChartExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("Activity", "Activity", "string", null);
@@ -269,12 +259,11 @@
         pieChart.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class ScatterChartExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("CO2", "CO2", "number", null);
@@ -289,12 +278,11 @@
         scatterChart.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
   public static class TableExample extends ViewPart {
-     @Override
+     
      public void createPartControl (Composite parent) {
         JSONGoogleDataTable dataTable = new JSONGoogleDataTable();
         dataTable.addColumn("theyear", "Date", "string", null);
@@ -309,7 +297,6 @@
         table.addListener(SWT.Selection, listener);
      }
      
-     @Override
      public void setFocus(){}
   }
   
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/PerspectiveFactory.java b/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/PerspectiveFactory.java
index e5a1f5a..8488b49 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/PerspectiveFactory.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google.demo/src/org/eclipse/rap/rwt/visualization/google/demo/PerspectiveFactory.java
@@ -22,7 +22,6 @@
 public class PerspectiveFactory implements IPerspectiveFactory
 {
 
-   @Override
    public void createInitialLayout(IPageLayout layout)
    {
       layout.setEditorAreaVisible(false);
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/META-INF/MANIFEST.MF b/bundles/org.eclipse.rap.rwt.visualization.google/META-INF/MANIFEST.MF
index 37be9d7..36d8934 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/META-INF/MANIFEST.MF
@@ -12,3 +12,4 @@
  org.eclipse.rap.rwt.visualization.google.json
 Eclipse-LazyStart: false
 Bundle-Vendor: %Bundle-Vendor
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/LineChart.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/LineChart.java
index 0dffa09..e73def5 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/LineChart.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/LineChart.java
@@ -67,7 +67,6 @@
     super( parent, style );
   }
   
-  @Override
   public void redraw() {
     super.redraw();
     dirty = true;
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java
index ffb6318..ad2bf47 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java
@@ -38,7 +38,6 @@
   public VisualizationWidget( final Composite parent, final int style ) {
     super( parent, style );
     this.addControlListener(new ControlAdapter() {
-       @Override
       public void controlResized(ControlEvent e)
       {
           Point psz = getSize();
@@ -88,7 +87,6 @@
     return widgetOptions+widgetSize;
   }
   
-  @Override
   public void redraw() {
     super.redraw();
     dirty = true;
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/annotatedtimelinekit/AnnotatedTimeLineLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/annotatedtimelinekit/AnnotatedTimeLineLCA.java
index 5996e77..fef715b 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/annotatedtimelinekit/AnnotatedTimeLineLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/annotatedtimelinekit/AnnotatedTimeLineLCA.java
@@ -17,7 +17,6 @@
 
 public class AnnotatedTimeLineLCA extends VisualizationWidgetLCA {
   
-  @Override
   public Class getWidgetType () {
      return AnnotatedTimeLine.class;
   }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/areachartkit/AreaChartLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/areachartkit/AreaChartLCA.java
index a2afbfc..17c0f1a 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/areachartkit/AreaChartLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/areachartkit/AreaChartLCA.java
@@ -17,7 +17,6 @@
 
 public class AreaChartLCA extends VisualizationWidgetLCA {
 
-   @Override
    public Class getWidgetType () {
      return AreaChart.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/barchartkit/BarChartLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/barchartkit/BarChartLCA.java
index 468f9a5..36f68c3 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/barchartkit/BarChartLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/barchartkit/BarChartLCA.java
@@ -17,7 +17,6 @@
 
 public class BarChartLCA extends VisualizationWidgetLCA {
 
-   @Override
    public Class getWidgetType () {
      return BarChart.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/columnchartkit/ColumnChartLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/columnchartkit/ColumnChartLCA.java
index 33e992f..626900d 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/columnchartkit/ColumnChartLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/columnchartkit/ColumnChartLCA.java
@@ -17,7 +17,6 @@
 
 public class ColumnChartLCA extends VisualizationWidgetLCA {
 
-   @Override
    public Class getWidgetType () {
      return ColumnChart.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/gaugekit/GaugeLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/gaugekit/GaugeLCA.java
index 1795901..e33c16f 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/gaugekit/GaugeLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/gaugekit/GaugeLCA.java
@@ -17,7 +17,6 @@
 
 public class GaugeLCA extends VisualizationWidgetLCA {
 
-   @Override
    public Class getWidgetType () {
      return Gauge.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/geomapkit/GeomapLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/geomapkit/GeomapLCA.java
index bc3ad6f..9218835 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/geomapkit/GeomapLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/geomapkit/GeomapLCA.java
@@ -17,7 +17,6 @@
 
 public class GeomapLCA extends VisualizationWidgetLCA {
 
-   @Override
    public Class getWidgetType () {
      return Geomap.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/intensitymapkit/IntensityMapLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/intensitymapkit/IntensityMapLCA.java
index 88b2f11..15f6b4e 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/intensitymapkit/IntensityMapLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/intensitymapkit/IntensityMapLCA.java
@@ -17,7 +17,6 @@
 
 public class IntensityMapLCA extends VisualizationWidgetLCA {
 
-   @Override
    public Class getWidgetType () {
       return IntensityMap.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/linechartkit/LineChartLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/linechartkit/LineChartLCA.java
index d566ced..269ada8 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/linechartkit/LineChartLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/linechartkit/LineChartLCA.java
@@ -23,12 +23,10 @@
 public class LineChartLCA extends VisualizationWidgetLCA {
   protected static final String REDRAW_FUNC = "drawChart";
   
-  @Override
   public Class getWidgetType () {
     return LineChart.class;
   }
   
-  @Override
   public void renderChanges( final Widget widget ) throws IOException {
     super.renderChanges(widget);
     LineChart vWidget = ( LineChart )widget;
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/motionchartkit/MotionChartLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/motionchartkit/MotionChartLCA.java
index ccd5b56..3707775 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/motionchartkit/MotionChartLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/motionchartkit/MotionChartLCA.java
@@ -19,15 +19,10 @@
 
 public class MotionChartLCA extends VisualizationWidgetLCA {
   
-  /*
-   * Initial creation procedure of the widget
-   */
-  @Override
   public Class getWidgetType () {
      return MotionChart.class;
   }
   
-  @Override
   public void readData(Widget widget) {
     super.readData(widget);
     if (widget==null) return;
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/piechartkit/PieChartLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/piechartkit/PieChartLCA.java
index 0fcd32a..aedeb02 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/piechartkit/PieChartLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/piechartkit/PieChartLCA.java
@@ -17,7 +17,6 @@
 
 public class PieChartLCA extends VisualizationWidgetLCA {
   
-   @Override
    public Class getWidgetType () {
      return PieChart.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/scatterchartkit/ScatterChartLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/scatterchartkit/ScatterChartLCA.java
index 5adcfe3..9f2a391 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/scatterchartkit/ScatterChartLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/scatterchartkit/ScatterChartLCA.java
@@ -17,7 +17,6 @@
 
 public class ScatterChartLCA extends VisualizationWidgetLCA {
   
-   @Override
    public Class getWidgetType () {
      return ScatterChart.class;
    }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/tablekit/TableLCA.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/tablekit/TableLCA.java
index 99e6ac0..171471a 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/tablekit/TableLCA.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/internal/tablekit/TableLCA.java
@@ -17,7 +17,6 @@
 
 public class TableLCA extends VisualizationWidgetLCA {
   
-   @Override
    public Class getWidgetType () {
      return Table.class;
    }
