diff --git a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
index b9b3431..9e9c123 100644
--- a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
+++ b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
@@ -24,5 +24,9 @@ class ContainerBuilder extends BaseContainerBuilder {
     // functions. This default is overridden by drupal_language_initialize()
     // during language negotiation.
     $this->register(LANGUAGE_TYPE_INTERFACE, 'Drupal\\Core\\Language\\Language');
+    
+    // Define the mappings to the statistics wrapper
+    $this->register('statistics', 'Drupal\\Core\\Statistics\\StatisticsBackend');
+    
   }
 }
diff --git a/core/lib/Drupal/Core/Statistics/DatabaseStatisticsBackend.php b/core/lib/Drupal/Core/Statistics/DatabaseStatisticsBackend.php
new file mode 100644
index 0000000..46b3308
--- /dev/null
+++ b/core/lib/Drupal/Core/Statistics/DatabaseStatisticsBackend.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace Drupal\Core\Statistics;
+use Drupal\Core\Statistics\StatisticsBackendInterface;
+
+class DatabaseStatisticsBackend implements StatisticsBackendInterface {
+
+  public function save($nid) {
+    db_merge('node_counter')
+       ->key(array('nid' => $nid))
+       ->fields(array(
+         'daycount' => 1,
+         'totalcount' => 1,
+         'timestamp' => REQUEST_TIME,
+       ))
+       ->expression('daycount', 'daycount + 1')
+       ->expression('totalcount', 'totalcount + 1')
+       ->execute();
+  }
+}
\ No newline at end of file
diff --git a/core/lib/Drupal/Core/Statistics/StatisticsBackend.php b/core/lib/Drupal/Core/Statistics/StatisticsBackend.php
new file mode 100644
index 0000000..d7cac44
--- /dev/null
+++ b/core/lib/Drupal/Core/Statistics/StatisticsBackend.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\Core\Statistics\StatisticsBackend.
+ */
+
+namespace Drupal\Core\Statistics;
+
+/**
+ *
+ */
+class StatisticsBackend {
+
+  function statistics() {
+    $statistics_backend = &drupal_static(__FUNCTION__);
+
+    if (!isset($statistics_backend)) {
+      $class_name = variable_get('statistics_backend', 'Drupal\Core\Statistics\DatabaseStatisticsBackend');
+
+      if (class_exists($class_name)) {
+        $statistics_backend = new $class_name();
+      }
+      else {
+        $statistics_backend = new DatabaseStatisticsBackend();
+      }
+
+      drupal_register_shutdown_function(array($statistics_backend, 'releaseAll'));
+    }
+
+    return $statistics_backend;
+  }
+}
\ No newline at end of file
diff --git a/core/lib/Drupal/Core/Statistics/StatisticsBackendInterface.php b/core/lib/Drupal/Core/Statistics/StatisticsBackendInterface.php
new file mode 100644
index 0000000..0bd03bf
--- /dev/null
+++ b/core/lib/Drupal/Core/Statistics/StatisticsBackendInterface.php
@@ -0,0 +1,9 @@
+<?php
+
+namespace Drupal\Core\Statistics;
+
+interface StatisticsBackendInterface {
+
+  public function save($nid);
+
+}
\ No newline at end of file
diff --git a/core/modules/statistics/statistics.module b/core/modules/statistics/statistics.module
index ef1bceb..182ff0b 100644
--- a/core/modules/statistics/statistics.module
+++ b/core/modules/statistics/statistics.module
@@ -6,6 +6,8 @@
  */
 
 use Drupal\node\Node;
+use Drupal\Core\Statistics\DatabaseStatisticsBackend;
+use Drupal\Core\Statistics\StatisticsBackendInterface;
 
 /**
  * Implements hook_help().
diff --git a/core/modules/statistics/statistics.php b/core/modules/statistics/statistics.php
index 040dc19..4250af1 100644
--- a/core/modules/statistics/statistics.php
+++ b/core/modules/statistics/statistics.php
@@ -14,20 +14,12 @@ chdir('../../..');
 define('DRUPAL_ROOT', getcwd());
 
 include_once DRUPAL_ROOT . '/core/includes/bootstrap.inc';
-drupal_bootstrap(DRUPAL_BOOTSTRAP_VARIABLES);
+drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+
 if (variable_get('statistics_count_content_views', 0)) {
   $nid = $_POST['nid'];
   if (is_numeric($nid)) {
-    db_merge('node_counter')
-      ->key(array('nid' => $nid))
-      ->fields(array(
-        'daycount' => 1,
-        'totalcount' => 1,
-        'timestamp' => REQUEST_TIME,
-      ))
-      ->expression('daycount', 'daycount + 1')
-      ->expression('totalcount', 'totalcount + 1')
-      ->execute();
+    drupal_container()->get('statistics')->statistics()->save($nid);
   }
 }
 
