diff --git a/node_class.module b/node_class.module
index 7f9ef2f..1cdd4e6 100644
--- a/node_class.module
+++ b/node_class.module
@@ -21,8 +21,15 @@ function node_class($node) {
  * Gets CSS class information for a given node.
  */
 function node_class_attributes($node) {
-  $ret = db_query('SELECT css_class FROM {node_class} WHERE nid = :nid', array(':nid' => $node->nid))->fetchField();
-  return $ret ? $ret : '';
+  // dev note:
+  // Get css attribute information ONLY if node already existed.
+  // if we're here the $form[#node] object will have already been
+  // created but it won't have an nid because it hasn't been saved
+  if (!isset($node->nid)) {
+    return "";
+  }
+
+  return db_query('SELECT css_class FROM {node_class} WHERE nid = :nid', array(':nid' => $node->nid))->fetchField();
 }
 
 /*
@@ -38,17 +45,16 @@ function node_class_form_alter(&$form, &$form_state, $form_id) {
       '#weight' => -1,
       '#tree' => TRUE,
     );
-    
-    // Get css attribute information
-    $attributes = node_class_attributes($form['#node']);
-    
+
+      $attributes = node_class_attributes($form['#node']);
+
     // Check CSS exists in DB to prepare SQL update
     if ($attributes) {
       $form['node_class']['existing_css'] = array(
         '#type' => 'hidden',
         '#value' => '1',
       );
-    };
+    }
 
     $form['node_class']['css_class'] = array(
       '#type' => 'textfield',
@@ -71,13 +77,8 @@ function node_class_form_alter(&$form, &$form_state, $form_id) {
       $nid = $form_state['values']['nid'];
       $class = check_plain($form_state['values']['node_class']['css_class']);
       
-      // CRUD test
-      if (!isset($form_state['values']['node_class']['existing_css']))  {
-        if (!empty($class)) {
-          $id = db_insert('node_class')->fields(array('nid' => $nid, 'css_class' => $class))->execute();
-        }
-      }
-      else {
+      // update existing nodes that already have nid
+      if (isset($form_state['values']['node_class']['existing_css']) && !is_null($nid))  {
         db_update('node_class')->fields(array('css_class' => $class))->condition('nid', $nid)->execute();
        }
      }
@@ -91,3 +92,12 @@ function node_class_node_delete($node) {
   // Delete class information for the node
   db_delete('node_class')->condition('nid', $node->nid)->execute();
 }
+
+/**
+ * Implements hook_node_insert().
+ */
+function node_class_node_insert($node) {
+  if(isset($node->node_class['css_class'])) {
+    $id = db_insert('node_class')->fields(array('nid' => $node->nid, 'css_class' => $node->node_class['css_class']))->execute();
+  }
+}
\ No newline at end of file
