diff --git a/charts.hooks.inc b/charts.hooks.inc
index d23969f..88526b8 100644
--- a/charts.hooks.inc
+++ b/charts.hooks.inc
@@ -21,20 +21,6 @@ function charts_chart_types() {
 }
 
 /**
- * Implementation of hook_menu().
- */
-function charts_menu() {
-  $items['admin/settings/charts'] = array(
-    'access arguments'  => array('set default settings for charts'),
-    'description'     => 'Set the default behaviour and look of all your charts',
-    'page callback'   => 'drupal_get_form',
-    'page arguments'  => array('_charts_settings_page'),
-    'title'           => 'Charts'
-  );
-  return $items;
-}
-
-/**
  * Implementation of hook_perm().
  */
 function charts_perm() {
diff --git a/charts.info b/charts.info
index 0e75b56..3731d2d 100644
--- a/charts.info
+++ b/charts.info
@@ -7,4 +7,5 @@ files[]         = charts.hooks.inc
 files[]         = charts.install
 name            = "Charts"
 package         = "Charts"
-php             = 5.2
\ No newline at end of file
+php             = 5.2
+configure       = admin/config/system/charts
diff --git a/charts.install b/charts.install
index 26851bc..ace37e5 100644
--- a/charts.install
+++ b/charts.install
@@ -37,7 +37,9 @@ function charts_requirements($phase) {
     $requirements['charts']['title']        = t('Charts');
     $requirements['charts']['value']        = t('Charts module not yet configured');
     $requirements['charts']['severity']     = REQUIREMENT_ERROR;
-    $requirements['charts']['description']  = t('Charts core module needs to get some default options in order to operate. You must go to <a href="!link">settings page</a> and configure it.', array('!link' => url('admin/settings/charts')));
+    $requirements['charts']['description']  = t('Charts core module needs to get some default options in order to operate. You must go to <a href="!link">settings page</a> and configure it.', array(
+      '!link' => url('admin/settings/system/charts'),
+    ));
   }
 
   if (isset($requirements)) {
diff --git a/charts.module b/charts.module
index f87a45d..042a9ee 100644
--- a/charts.module
+++ b/charts.module
@@ -21,3 +21,18 @@ function charts_chart(&$data) {
   module_load_include('inc', 'charts');
   return _charts_chart($data);
 }
+
+/**
+ * Implementation of hook_menu().
+ */
+function charts_menu() {
+  $items['admin/config/system/charts'] = array(
+    'access arguments'  => array('set default settings for charts'),
+    'description'     => 'Set the default behaviour and look of all your charts',
+    'page callback'   => 'drupal_get_form',
+    'page arguments'  => array('_charts_settings_page'),
+    'title'           => 'Charts',
+    'file'            => 'charts.admin.inc',
+  );
+  return $items;
+}
diff --git a/charts_system/charts_system.hooks.inc b/charts_system/charts_system.hooks.inc
deleted file mode 100644
index 9d22dd2..0000000
--- a/charts_system/charts_system.hooks.inc
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * @author Bruno Massa http://drupal.org/user/67164
- * @author TJ (based on his Chart module)
- * @file
- * Use Charts for Drupal administration
- */
-
-/**
- * Implementation of hook_menu().
- */
-function charts_system_menu() {
-  $items['admin/reports/charts'] = array(
-    'access arguments'  => array('access site reports'),
-    'file'              => 'charts_system.inc',
-    'page callback'     => '_charts_system_charts',
-    'page arguments'    => array('nodes'),
-    'title'             => 'Charts'
-  );
-  $items['admin/reports/charts/nodes'] = array(
-    'access arguments'  => array('access site reports'),
-    'file'              => 'charts_system.inc',
-    'page callback'     => '_charts_system_charts',
-    'page arguments'    => array('nodes'),
-    'title'             => 'Nodes',
-    'type'              => MENU_DEFAULT_LOCAL_TASK
-  );
-  $items['admin/reports/charts/users'] = array(
-    'access arguments'  => array('access site reports'),
-    'file'              => 'charts_system.inc',
-    'page callback'     => '_charts_system_charts',
-    'page arguments'    => array('users'),
-    'title'             => 'Users',
-    'type'              => MENU_LOCAL_TASK
-  );
-  $items['admin/reports/charts/watchdog'] = array(
-    'access arguments'  => array('access site reports'),
-    'file'              => 'charts_system.inc',
-    'page callback'     => '_charts_system_charts',
-    'page arguments'    => array('watchdog'),
-    'title'             => 'Watchdog',
-    'type'              => MENU_LOCAL_TASK
-  );
-
-  return $items;
-}
diff --git a/charts_system/charts_system.inc b/charts_system/charts_system.inc
index 9b2a1b9..0e82ab5 100644
--- a/charts_system/charts_system.inc
+++ b/charts_system/charts_system.inc
@@ -1,10 +1,4 @@
 <?php
-/**
- * @author Bruno Massa http://drupal.org/user/67164
- * @author TJ (based on his Chart module)
- * @file
- * Use Charts for Drupal administration
- */
 
 /**
  * Chart reports page
@@ -99,16 +93,15 @@ function _charts_system_charts($ctype) {
  *   String. The HTML chart when all data is fine or a blank string
  */
 function _charts_system_generate($title, $sql, $callback = NULL) {
-  $results = db_query($sql);
+  $results = db_query($sql, array());
+  $data = array();
 
-  while ($result = db_fetch_array($results)) {
-    if (!empty($callback)) {
-      $result['name'] = $callback($result['name']);
-    }
+  foreach ($results as $record) {
+    $name = empty($callback) ? $record->name : $callback($record->name);
 
     $data[] = array(
-      '#value'  => $result['count'],
-      '#label'  => $result['name'] . ': ' . $result['count']
+      '#value'  => $record->count,
+      '#label'  => $name . ': ' . $record->count
     );
   }
 
@@ -135,9 +128,11 @@ function _charts_system_node_activity() {
 
   $results = db_query('SELECT type, created
     FROM {node}
-    WHERE created < %d AND created > %d
-    ORDER BY created',
-    $now, mktime(0, 0, 0, date('m', $now), 1, date('Y', $now))
+    WHERE created < :now AND created > :then
+    ORDER BY created', array(
+      ':now' => $now,
+      ':then' => mktime(0, 0, 0, date('m', $now), 1, date('Y', $now)),
+    )
   );
 
   $max    = array();
diff --git a/charts_system/charts_system.info b/charts_system/charts_system.info
index e7036a6..d9219f7 100644
--- a/charts_system/charts_system.info
+++ b/charts_system/charts_system.info
@@ -1,7 +1,5 @@
 core            = "7.x"
 dependencies[]  = charts
 description     = "Use Charts for Drupal administration"
-files[]         = charts_system.inc
-files[]         = charts_system.hooks.inc
 name            = "Charts System"
 package         = "Charts"
diff --git a/charts_system/charts_system.module b/charts_system/charts_system.module
index b3d9bbc..9d22dd2 100644
--- a/charts_system/charts_system.module
+++ b/charts_system/charts_system.module
@@ -1 +1,46 @@
 <?php
+/**
+ * @author Bruno Massa http://drupal.org/user/67164
+ * @author TJ (based on his Chart module)
+ * @file
+ * Use Charts for Drupal administration
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function charts_system_menu() {
+  $items['admin/reports/charts'] = array(
+    'access arguments'  => array('access site reports'),
+    'file'              => 'charts_system.inc',
+    'page callback'     => '_charts_system_charts',
+    'page arguments'    => array('nodes'),
+    'title'             => 'Charts'
+  );
+  $items['admin/reports/charts/nodes'] = array(
+    'access arguments'  => array('access site reports'),
+    'file'              => 'charts_system.inc',
+    'page callback'     => '_charts_system_charts',
+    'page arguments'    => array('nodes'),
+    'title'             => 'Nodes',
+    'type'              => MENU_DEFAULT_LOCAL_TASK
+  );
+  $items['admin/reports/charts/users'] = array(
+    'access arguments'  => array('access site reports'),
+    'file'              => 'charts_system.inc',
+    'page callback'     => '_charts_system_charts',
+    'page arguments'    => array('users'),
+    'title'             => 'Users',
+    'type'              => MENU_LOCAL_TASK
+  );
+  $items['admin/reports/charts/watchdog'] = array(
+    'access arguments'  => array('access site reports'),
+    'file'              => 'charts_system.inc',
+    'page callback'     => '_charts_system_charts',
+    'page arguments'    => array('watchdog'),
+    'title'             => 'Watchdog',
+    'type'              => MENU_LOCAL_TASK
+  );
+
+  return $items;
+}
diff --git a/fusioncharts/fusioncharts.hooks.inc b/fusioncharts/fusioncharts.hooks.inc
deleted file mode 100644
index 8a6560f..0000000
--- a/fusioncharts/fusioncharts.hooks.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * @author Bruno Massa http://drupal.org/user/67164
- * @file
- * Use FusionCharts on your site.
- *
- * @note only hooks are here.
- */
-
-/**
- * Implementation of hook_charts_info().
- *
- * Its a Charts module hook. It defines almost all aspects
- * of a chart provider, like its name, what types of charts
- * it can perform and what are the restrictions.
- */
-function fusioncharts_charts_info() {
-  return array(
-    'fusioncharts' => array(
-      'file'    => drupal_get_path('module', 'fusioncharts') . '/fusioncharts.inc',
-      'name'    => t('FusionCharts'),
-      'render'  => '_fusioncharts_charts_render',
-      'types'   => array('line2D', 'hbar2D', 'hbar3D', 'vbar2D', 'vbar3D', 'pie2D', 'pie3D'),
-    ),
-  );
-}
-
-/**
- * Implementation of hook_chart_types().
- */
-function fusioncharts_chart_types() {
-  return array(
-    'hbar3D'    => t('Horizontal Bar 3D'),
-    'vbar3D'    => t('Vertical Bar 3D'),
-  );
-}
diff --git a/fusioncharts/fusioncharts.info b/fusioncharts/fusioncharts.info
index 0dcc164..60ee925 100644
--- a/fusioncharts/fusioncharts.info
+++ b/fusioncharts/fusioncharts.info
@@ -2,7 +2,6 @@ core            = "7.x"
 dependencies[]  = charts
 description     = "Use FusionCharts on your site."
 files[]         = fusioncharts.inc
-files[]         = fusioncharts.hooks.inc
 files[]         = fusioncharts.install
 name            = "FusionCharts"
 package         = "Charts"
diff --git a/fusioncharts/fusioncharts.install b/fusioncharts/fusioncharts.install
index 4e6df03..05d45a0 100644
--- a/fusioncharts/fusioncharts.install
+++ b/fusioncharts/fusioncharts.install
@@ -9,7 +9,7 @@
  * Implementation of hook_requirements().
  */
 function fusioncharts_requirements($phase) {
-  $path = file_create_path() . '/fusioncharts';
+  $path = drupal_get_path('module', 'fusioncharts');
   if (!file_exists($path . '/MSLine.swf')) {
     $requirements['charts']['title']        = t('FusionCharts');
     $requirements['charts']['value']        = t('FusionCharts flash files not installed');
diff --git a/fusioncharts/fusioncharts.module b/fusioncharts/fusioncharts.module
index b3d9bbc..0e316d0 100644
--- a/fusioncharts/fusioncharts.module
+++ b/fusioncharts/fusioncharts.module
@@ -1 +1,34 @@
 <?php
+/**
+ * @author Bruno Massa http://drupal.org/user/67164
+ * @file
+ * Use FusionCharts on your site.
+ */
+
+/**
+ * Implementation of hook_charts_info().
+ *
+ * Its a Charts module hook. It defines almost all aspects
+ * of a chart provider, like its name, what types of charts
+ * it can perform and what are the restrictions.
+ */
+function fusioncharts_charts_info() {
+  return array(
+    'fusioncharts' => array(
+      'file'    => drupal_get_path('module', 'fusioncharts') . '/fusioncharts.inc',
+      'name'    => t('FusionCharts'),
+      'render'  => '_fusioncharts_charts_render',
+      'types'   => array('line2D', 'hbar2D', 'hbar3D', 'vbar2D', 'vbar3D', 'pie2D', 'pie3D'),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_chart_types().
+ */
+function fusioncharts_chart_types() {
+  return array(
+    'hbar3D'    => t('Horizontal Bar 3D'),
+    'vbar3D'    => t('Vertical Bar 3D'),
+  );
+}
diff --git a/google_charts/google_charts.hooks.inc b/google_charts/google_charts.hooks.inc
deleted file mode 100644
index 8a21ca9..0000000
--- a/google_charts/google_charts.hooks.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * @author Bruno Massa http://drupal.org/user/67164
- * @file
- * Use Google Charts on your site.
- *
- * @note only hooks are here.
- */
-
-/**
- * Implementation of hook_charts_info().
- *
- * Its a Charts module hook. It defines almost all aspects
- * of a chart provider, like its name, what types of charts
- * it can perform and what are the restrictions.
- */
-function google_charts_charts_info() {
-  return array(
-    'google' => array(
-      'file'    => drupal_get_path('module', 'google_charts') . '/google_charts.inc',
-      'name'    => t('Google Chart'),
-      'render'  => '_google_charts_render',
-      'types'   => array('line2D', 'hbar2D', 'vbar2D', 'pie2D', 'pie3D', 'venn', 'scatter'),
-    ),
-  );
-}
-
-/**
- * Implementation of hook_chart_types().
- */
-function google_charts_chart_types() {
-  return array(
-    'venn'    => t('Venn'),
-    'scatter' => t('Scatter Plot'),
-  );
-}
diff --git a/google_charts/google_charts.info b/google_charts/google_charts.info
index 1a0efe5..7e428af 100644
--- a/google_charts/google_charts.info
+++ b/google_charts/google_charts.info
@@ -2,6 +2,5 @@ core            = "7.x"
 dependencies[]  = charts
 description     = "Use Google Charts on your site."
 files[]         = google_charts.inc
-files[]         = google_charts.hooks.inc
 name            = "Google"
 package         = "Charts"
diff --git a/google_charts/google_charts.module b/google_charts/google_charts.module
index b3d9bbc..b9498a1 100644
--- a/google_charts/google_charts.module
+++ b/google_charts/google_charts.module
@@ -1 +1,29 @@
 <?php
+
+/**
+ * Implementation of hook_charts_info().
+ *
+ * Its a Charts module hook. It defines almost all aspects
+ * of a chart provider, like its name, what types of charts
+ * it can perform and what are the restrictions.
+ */
+function google_charts_charts_info() {
+  return array(
+    'google' => array(
+      'file'    => drupal_get_path('module', 'google_charts') . '/google_charts.inc',
+      'name'    => t('Google Chart'),
+      'render'  => '_google_charts_render',
+      'types'   => array('line2D', 'hbar2D', 'vbar2D', 'pie2D', 'pie3D', 'venn', 'scatter'),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_chart_types().
+ */
+function google_charts_chart_types() {
+  return array(
+    'venn'    => t('Venn'),
+    'scatter' => t('Scatter Plot'),
+  );
+}
diff --git a/openflashchart/openflashchart.hooks.inc b/openflashchart/openflashchart.hooks.inc
deleted file mode 100644
index 955f6fa..0000000
--- a/openflashchart/openflashchart.hooks.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * @author Bruno Massa http://drupal.org/user/67164
- * @file
- * Use Open Flash Chart on your site.
- *
- * @note only hooks are here.
- */
-
-/**
- * Implementation of hook_charts_info().
- *
- * Its a Charts module hook. It defines almost all aspects
- * of a chart provider, like its name, what types of charts
- * it can perform and what are the restrictions.
- */
-function openflashchart_charts_info() {
-  return array(
-    'openflashchart' => array(
-      'file'    => drupal_get_path('module', 'openflashchart') . '/openflashchart.inc',
-      'name'    => t('Open Flash Chart'),
-      'render'  => '_openflashchart_charts_render',
-      'types'   => array('line2D', 'vbar2D', 'vbar3D', 'pie2D'),
-    ),
-  );
-}
diff --git a/openflashchart/openflashchart.info b/openflashchart/openflashchart.info
index 81928fe..c425927 100644
--- a/openflashchart/openflashchart.info
+++ b/openflashchart/openflashchart.info
@@ -3,6 +3,5 @@ dependencies[]  = charts
 dependencies[]  = open_flash_chart_api
 description     = "Use Open Flash Charts on your site."
 files[]         = openflashchart.inc
-files[]         = openflashchart.hooks.inc
 name            = "Open Flash Chart"
 package         = "Charts"
diff --git a/openflashchart/openflashchart.module b/openflashchart/openflashchart.module
index b3d9bbc..1a37beb 100644
--- a/openflashchart/openflashchart.module
+++ b/openflashchart/openflashchart.module
@@ -1 +1,24 @@
 <?php
+/**
+ * @author Bruno Massa http://drupal.org/user/67164
+ * @file
+ * Use Open Flash Chart on your site.
+ */
+
+/**
+ * Implementation of hook_charts_info().
+ *
+ * Its a Charts module hook. It defines almost all aspects
+ * of a chart provider, like its name, what types of charts
+ * it can perform and what are the restrictions.
+ */
+function openflashchart_charts_info() {
+  return array(
+    'openflashchart' => array(
+      'file'    => drupal_get_path('module', 'openflashchart') . '/openflashchart.inc',
+      'name'    => t('Open Flash Chart'),
+      'render'  => '_openflashchart_charts_render',
+      'types'   => array('line2D', 'vbar2D', 'vbar3D', 'pie2D'),
+    ),
+  );
+}
