diff --git a/browscap.install b/browscap.install
index 97e3b2c..cb504f6 100644
--- a/browscap.install
+++ b/browscap.install
@@ -20,8 +20,190 @@ function browscap_schema() {
         'type' => 'blob',
         'size' => 'big',
       ),
+      'propertyname' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'agentid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+      ),
+      'masterparent' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+      ),
+      'litemode' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+      ),
+      'parent' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'comment' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'browser' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'version' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'majorver' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+      ),
+      'minorver' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+      ),
+      'platform' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'platform_version' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'platform_description' => array(
+        'type' => 'text',
+      ),
+      'alpha' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'beta' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'win16' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'win32' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'win64' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'frames' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'iframes' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'tables' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'cookies' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'backgroundsounds' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'javascript' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'vbscript' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'javaapplets' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'activexcontrols' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'ismobiledevice' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'issyndicationreader' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'crawler' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
+      'cssversion' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'aolversion' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'device_name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'device_maker' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'renderingengine_name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'renderingengine_version' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
+      'renderingengine_description' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'default' => '',
+      ),
     ),
     'primary key' => array('useragent'),
+    'indexes' => array(
+      'parent' => array('parent'),
+    ),
   );
   $schema['browscap_statistics'] = array(
     'fields' => array(
@@ -133,3 +315,199 @@ function browscap_update_7001() {
   variable_set('browscap_enable_user_agent_log', $browscap_monitor);
   variable_del('browscap_monitor');
 }
+
+/**
+ * Implements hook_update_N().
+ *
+ * Add the extra data fields for each user agent.
+ */
+function browscap_update_7002(&$sandbox) {
+  $fields = array(
+    'propertyname' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'not null' => TRUE,
+      'default' => '',
+    ),
+    'agentid' => array(
+      'type' => 'int',
+      'unsigned' => TRUE,
+    ),
+    'masterparent' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+    ),
+    'litemode' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+    ),
+    'parent' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'comment' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'browser' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'version' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'majorver' => array(
+      'type' => 'int',
+      'unsigned' => TRUE,
+    ),
+    'minorver' => array(
+      'type' => 'int',
+      'unsigned' => TRUE,
+    ),
+    'platform' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'platform_version' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'platform_description' => array(
+      'type' => 'text',
+    ),
+    'alpha' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'beta' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'win16' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'win32' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'win64' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'frames' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'iframes' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'tables' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'cookies' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'backgroundsounds' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'javascript' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'vbscript' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'javaapplets' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'activexcontrols' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'ismobiledevice' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'issyndicationreader' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'crawler' => array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'default' => 0,
+    ),
+    'cssversion' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'aolversion' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'device_name' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'device_maker' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'renderingengine_name' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'renderingengine_version' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+    'renderingengine_description' => array(
+      'type' => 'varchar',
+      'length' => 255,
+      'default' => '',
+    ),
+  );
+  
+  // Loop through the new fields and add them
+  foreach ($fields as $name => $field) {
+    db_add_field('browscap', $name, $field);
+  }
+  // Add the parent index
+  db_add_index('browscap', 'parent', array('parent'));
+}
\ No newline at end of file
diff --git a/import.inc b/import.inc
index 5773afd..04ac6b7 100644
--- a/import.inc
+++ b/import.inc
@@ -40,7 +40,7 @@ function _browscap_import($cron = TRUE) {
 
   // Compare the current and local version numbers to determine if the browscap
   // data requires updating
-  if ($current_version == $local_version) {
+  if ($current_version == $local_version and FALSE) {
     // Log a message with the watchdog
     watchdog('browscap', 'No new version of browscap to import');
 
@@ -107,6 +107,7 @@ function _browscap_import($cron = TRUE) {
 
     // Store the data available for each user agent
     foreach ($browscap_data as $key => $values) {
+
       // Store the current value
       $e = $values;
 
@@ -126,6 +127,15 @@ function _browscap_import($cron = TRUE) {
       // Change all array keys to lowercase
       $e = array_change_key_case($e);
 
+      $fields = array(
+        'useragent' => $user_agent,
+        'data' => serialize($e),
+      );
+
+      foreach ($e as $name => $value) {
+        $fields[drupal_strtolower($name)] = $value;
+      }
+
       // Delete all data about the current user agent from the database
       db_delete('browscap')
         ->condition('useragent', $user_agent)
@@ -133,10 +143,7 @@ function _browscap_import($cron = TRUE) {
 
       // Insert all data about the current user agent into the database
       db_insert('browscap')
-        ->fields(array(
-         'useragent' => $user_agent,
-         'data' => serialize($e)
-        ))
+        ->fields($fields)
         ->execute();
     }
 
