diff --git a/stormnote/stormnote.install b/stormnote/stormnote.install
index cb7d2e6..df417bf 100644
--- a/stormnote/stormnote.install
+++ b/stormnote/stormnote.install
@@ -46,3 +46,18 @@ function stormnote_schema() {
 function stormnote_update_last_removed() {
   return 6201;
 }
+
+
+/**
+ * Adds Drupal 7 style body field to Storm Note nodes
+ */
+function stormnote_update_7100() {
+  // Uncache node types
+  node_types_rebuild();
+
+  // Fetch list of current node types and add body field to Storm Task
+  $types = node_type_get_types();
+  node_add_body_field($types['stormnote'], 'Description');
+
+  return 'Added D7 style body field to Storm Note nodes';
+}
diff --git a/stormnote/stormnote.module b/stormnote/stormnote.module
index a6cb209..70d9804 100644
--- a/stormnote/stormnote.module
+++ b/stormnote/stormnote.module
@@ -202,9 +202,8 @@ function stormnote_node_info() {
   return array(
     'stormnote' => array(
       'name' => t('Note'),
-      'module' => 'stormnote',
+      'base' => 'stormnote',
       'description' => t("A note for Storm."),
-      'has_body' => TRUE,
     )
   );
 }
@@ -242,7 +241,7 @@ function stormnote_stormtask_change_hierarchy($task_nid, $organization_nid, $org
   db_query($s, $organization_nid, $organization_title, $project_nid, $project_title, $task_nid);
 }
 
-function stormnote_form(&$node) {
+function stormnote_form(&$node, $form_state) {
   $breadcrumb = array();
   $breadcrumb[] = l(t('Storm'), 'storm');
   $breadcrumb[] = l(t('Notes'), 'storm/notes');
@@ -283,15 +282,9 @@ function stormnote_form(&$node) {
     if (isset($_SESSION['stormnote_list_filter']['task_nid']) && !$node->task_nid) {
       $node->task_nid = $_SESSION['stormnote_list_filter']['task_nid'];
     }
-    $s_org = "SELECT n.nid, n.title FROM {stormorganization} so INNER JOIN {node} n
-              ON so.nid=n.nid WHERE n.status=1 AND so.isactive=1 AND n.type='stormorganization' ORDER BY n.title";
-  }
-  else {
-    $s_org = "SELECT n.nid, n.title FROM {stormorganization} so INNER JOIN {node} n
-              ON so.nid=n.nid WHERE n.status=1 AND n.type='stormorganization' ORDER BY n.title";
   }
 
-  $type = node_get_types('type', $node);
+  $type = node_type_get_type($node);
 
   $form['group1'] = array(
     '#type' => 'markup',
@@ -299,11 +292,20 @@ function stormnote_form(&$node) {
     '#weight' => module_exists('content') ? content_extra_field_weight($node->type, 'group1') : -20,
   );
 
-  $s_org = stormorganization_access_sql($s_org);
-  $s_org = db_rewrite_sql($s_org);
-  $r = db_query($s_org);
+  $org_query = db_select('node', 'n');
+  $org_query->join('stormorganization', 'sor', 'n.vid = sor.vid');
+  $org_query
+    ->fields('n', array('nid', 'title'))
+    ->condition('n.status', 1)
+    ->condition('n.type', 'stormorganization')
+    ->condition('sor.isactive', 1)
+    ->orderBy('n.title', 'ASC')
+    ->addTag('node_access');
+
+//  $s_org = stormorganization_access_sql($s_org);
+  $org_result = $org_query->execute();
   $organizations = array();
-  while ($organization = db_fetch_object($r)) {
+  foreach ($org_result as $organization) {
     $organizations[$organization->nid] = $organization->title;
     if (!isset($node->organization_nid)) {
       $node->organization_nid = $organization->nid;
@@ -315,34 +317,55 @@ function stormnote_form(&$node) {
     '#default_value' => $node->organization_nid,
     '#options' => $organizations,
     '#required' => TRUE,
-    '#attributes' => array('onchange' => "stormtask_organization_project_tasks(this, 'edit-project-nid', 'edit-parent-nid', '', true, '-')"),
+    '#ajax' => array(
+      'callback' => 'stormnote_ajax_organization_nid',
+      'wrapper' => 'stormnote-project-nid',
+    ),
   );
 
-  $s = "SELECT n.nid, n.title FROM {node} n INNER JOIN {stormproject} spr ON spr.vid=n.vid WHERE spr.organization_nid=%d AND n.status=1 AND n.type='stormproject' ORDER BY n.title";
-  $s = stormproject_access_sql($s);
-  $s = db_rewrite_sql($s);
-  $r = db_query($s, $node->organization_nid);
+  $organization_nid = isset($form_state['values']['organization_nid']) ? $form_state['values']['organization_nid'] : $node->organization_nid;
+
+  $pro_query = db_select('node', 'n');
+  $pro_query->join('stormproject', 'spr', 'n.vid = spr.vid');
+  $pro_result = $pro_query
+    ->fields('n', array('nid', 'title'))
+    ->condition('n.status', 1)
+    ->condition('spr.organization_nid', $organization_nid)
+    ->condition('n.type', 'stormproject')
+    ->orderBy('n.title', 'ASC')
+    ->addTag('node_access')
+    ->execute();
+
   $projects = array();
-  while ($project = db_fetch_object($r)) {
+  foreach ($pro_result as $project) {
     $projects[$project->nid] = $project->title;
   }
+
+  $project_nid = isset($form_state['values']['project_nid']) ? $form_state['values']['project_nid'] : (isset($node->project_nid) ? $node->project_nid : NULL);
+
   $form['group1']['project_nid'] = array(
     '#type' => 'select',
     '#title' => t('Project'),
-    '#default_value' => isset($node->project_nid) ? $node->project_nid : NULL,
+    '#default_value' => $project_nid,
     '#options' => array(0 => '-') + $projects,
-    '#process' => array('storm_dependent_select_process'),
-    '#attributes' => array('onchange' => "stormtask_project_tasks('edit-organization-nid', this, 'edit-task-nid', '', true, '-')"),
+    '#prefix' => '<div id="stormnote-project-nid">',
+    '#suffix' => '</div>',
+    '#ajax' => array(
+      'callback' => 'stormnote_ajax_project_nid',
+      'wrapper' => 'stormnote-task-nid',
+    ),
+
   );
 
-  $tree = isset($node->project_nid) ? _stormtask_get_tree($node->project_nid) : array();
+  $tree = is_null($project_nid) ? array() : _stormtask_get_tree($project_nid);
   $tasks = _stormtask_plain_tree($tree);
   $form['group1']['task_nid'] = array(
     '#type' => 'select',
     '#title' => t('Task'),
     '#default_value' => isset($node->task_nid) ? $node->task_nid : NULL,
     '#options' => array(0 => '-') + $tasks,
-    '#process' => array('storm_dependent_select_process'),
+    '#prefix' => '<div id="stormtask-project-nid">',
+    '#suffix' => '</div>',
   );
 
   $form['title'] = array(
@@ -353,13 +376,23 @@ function stormnote_form(&$node) {
     '#weight' => module_exists('content') ? content_extra_field_weight($node->type, 'title') : -16,
   );
 
-  if ($type->has_body) {
-    $form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
+  // Check to see if the body field is still there, if so, display it.
+  $body = field_get_items('stormtask', $node, 'body');
+  if ($body) {
+    $form['body_field'] = $body;
   }
 
   return $form;
 }
 
+function stormnote_ajax_organization_nid(&$form, &$form_state) {
+  return $form['group1']['project_nid'];
+}
+
+function stormnote_ajax_project_nid(&$form, &$form_state) {
+  return $form['group1']['task_nid'];
+}
+
 function stormnote_insert($node) {
   _stormnote_beforesave($node);
 
diff --git a/stormnote/stormnote.theme.inc b/stormnote/stormnote.theme.inc
index 16a7285..214448e 100644
--- a/stormnote/stormnote.theme.inc
+++ b/stormnote/stormnote.theme.inc
@@ -69,13 +69,15 @@ function theme_stormnote_view($node, $teaser = FALSE, $page = FALSE) {
     '#weight' => 3,
   );
 
-  $node->content['body_field'] = array(
-    '#prefix' => '<div class="stormbody">',
-    '#suffix' => '</div>',
-    '#value' => theme('storm_view_item', t('Description'), $node->content['body']['#value']),
-    '#weight' => module_exists('content') ? content_extra_field_weight($node->type, 'body_field') : -18,
-  );
-  unset($node->content['body']);
+  $body = field_get_items('node', $node, 'body');
+  if ($body) {
+    $node->content['body'] = array (
+      '#prefix' => '<div class="stormbody">',
+      '#suffix' => '</div>',
+      '#markup' => theme('storm_view_item', array('label' => t('Description'), 'value' => check_plain($node->body['und'][0]['value']))),
+      '#weight' => 4,
+    );
+  }
 
   return $node;
 }
