diff --git a/storm.module b/storm.module
index 57b0806..89ed0f1 100644
--- a/storm.module
+++ b/storm.module
@@ -1085,27 +1085,21 @@ function storm_icon_delete_node($node, $params=array()) {
 
 function storm_icon_add($path, $item, $params=array()) {
   global $user;
-  $type = $item->type;
-  $af = $type .'_access';
-  if (!$af('create', $item, $user)) return '';
+  if (!node_access('create', $item, $user)) return '';
   $attributes = array('class' => 'popups-form');
   return storm_icon_l('application_add', $path, t('Add'), '', $params, $attributes);
 }
 
 function storm_icon_edit($path, $item, $params=array()) {
   global $user;
-  $type = $item->type;
-  $af = $type .'_access';
-  if (!$af('update', $item, $user)) return '';
+  if (!node_access('update', $item, $user)) return '';
   $attributes = array('class' => 'popups-form');
   return storm_icon_l('application_edit', $path, t('Edit'), '', $params, $attributes);
 }
 
 function storm_icon_delete($path, $item, $params=array()) {
   global $user;
-  $type = $item->type;
-  $af = $type .'_access';
-  if (!$af('delete', $item, $user)) return '';
+  if (!node_access('delete', $item, $user)) return '';
   $attributes = array('class' => 'popups-form');
   return storm_icon_l('application_delete', $path, t('Delete'), '', $params, $attributes);
 }
diff --git a/storm_handler_field_operation.inc b/storm_handler_field_operation.inc
index 8cd1859..ded363d 100644
--- a/storm_handler_field_operation.inc
+++ b/storm_handler_field_operation.inc
@@ -34,12 +34,14 @@ class storm_handler_field_operation extends views_handler_field_node_link {
   }
 
   function render($values) {
+    global $user;
     // ensure user has access to edit this node.
     $node = new stdClass();
     $node->nid = $values->{$this->aliases['nid']};
     $node->uid = $values->{$this->aliases['uid']};
     $node->type = $values->{$this->aliases['type']};
     $node->format = $values->{$this->aliases['format']};
+    //TODO add stormorganization_nid and assigned_nid!
     $node->status = 1; // unpublished nodes ignore access control
     if ($this->options['display_icons']) {
       $value = "";
@@ -52,18 +54,14 @@ class storm_handler_field_operation extends views_handler_field_node_link {
       return $value;
     }
     else {
-      global $user;
-      $type = $node->type;
-      $af = $type .'_access';
-
       $value = "";
-      if ($af('update', $node, $user)) {
+      if (node_access('update', $node)) {
         $value .= l(t('edit'), "node/$node->nid/edit", array('query' => drupal_get_destination()));
       }
-      if (!empty($value)) {
-        $value .= '&nbsp;|&nbsp;';
-      }
-      if ($af('delete', $node, $user)) {
+      if (node_access('delete', $node)) {
+        if (!empty($value)) {
+          $value .= '&nbsp;|&nbsp;';
+        }
         $value .= l(t('delete'), "node/$node->nid/delete", array('query' => drupal_get_destination()));
       }
 
diff --git a/stormexpense/stormexpense.theme.inc b/stormexpense/stormexpense.theme.inc
index bf4b8a6..e935840 100644
--- a/stormexpense/stormexpense.theme.inc
+++ b/stormexpense/stormexpense.theme.inc
@@ -7,14 +7,6 @@
 function theme_stormexpense_list($header, $expenses, $totals) {
   $rows = array();
   foreach ($expenses as $expense) {
-    $n = new stdClass();
-    $n->nid = $expense->nid;
-    $n->uid = $expense->uid;
-    $n->organization_nid = $expense->organization_nid;
-    $n->project_nid = $expense->project_nid;
-    $n->task_nid = $expense->task_nid;
-    $n->ticket_nid = $expense->ticket_nid;
-    $n->type = 'stormexpense';
     $rows[] = array(
       l($expense->organization_title, 'node/'. $expense->organization_nid),
       l($expense->project_title, 'node/'. $expense->project_nid),
@@ -22,7 +14,7 @@ function theme_stormexpense_list($header, $expenses, $totals) {
       format_date($expense->expensedate, 'custom', 'Y-m-d'),
       array('data' => sprintf('%.2f', $expense->total), 'align' => 'right'),
       array(
-        'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
+        'data' => storm_icon_edit_node($expense, $_GET) .'&nbsp;'. storm_icon_delete_node($expense, $_GET),
         'class' => 'storm_list_operations',
       ),
     );
diff --git a/storminvoice/storminvoice.admin.inc b/storminvoice/storminvoice.admin.inc
index 4209f8d..e7d0356 100644
--- a/storminvoice/storminvoice.admin.inc
+++ b/storminvoice/storminvoice.admin.inc
@@ -63,7 +63,7 @@ function storminvoice_list() {
     ),
   );
 
-  $s  = "SELECT n.title, sin.* FROM {node} AS n INNER JOIN {storminvoice} AS sin ON n.vid=sin.vid WHERE n.status=1 AND n.type='storminvoice' ";
+  $s  = "SELECT n.title, n.type, sin.* FROM {node} AS n INNER JOIN {storminvoice} AS sin ON n.vid=sin.vid WHERE n.status=1 AND n.type='storminvoice' ";
 
   $s_totals_topay = "SELECT SUM(amount) amount, SUM(tax1) tax1, SUM(tax2) tax2, SUM(total) total FROM {storminvoice} sin
   INNER JOIN {node} n ON n.vid=sin.vid WHERE n.status=1 AND n.type='storminvoice' AND sin.paymentdate=0";
diff --git a/storminvoice/storminvoice.theme.inc b/storminvoice/storminvoice.theme.inc
index 2cfe776..d330251 100644
--- a/storminvoice/storminvoice.theme.inc
+++ b/storminvoice/storminvoice.theme.inc
@@ -25,12 +25,6 @@
 function theme_storminvoice_list($header, $invoices, $itemsperpage, $totals_topay, $totals_paid, $totals) {
   $rows = array();
   foreach ($invoices as $invoice) {
-    $n = new stdClass();
-    $n->nid = $invoice->nid;
-    $n->uid = $invoice->uid;
-    $n->organization_nid = $invoice->organization_nid;
-    $n->project_nid = $invoice->project_nid;
-    $n->type = 'storminvoice';
 
     $invoice->status = 'open';
     if ($invoice->paymentdate) {
@@ -55,7 +49,7 @@ function theme_storminvoice_list($header, $invoices, $itemsperpage, $totals_topa
       format_date($invoice->requestdate, 'custom', 'Y-m-d'),
       array('data' => sprintf('%.2f', $invoice->total), 'align' => 'right'),
       array(
-        'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
+        'data' => storm_icon_edit_node($invoice, $_GET) .'&nbsp;'. storm_icon_delete_node($invoice, $_GET),
         'class' => 'storm_list_operations',
       ),
     );
@@ -88,7 +82,7 @@ function theme_storminvoice_list($header, $invoices, $itemsperpage, $totals_topa
   );
 
   $rows = array();
-  $rows[] = array(
+  $row = array(
     array(
       'data' => t('Total to pay'),
       'style' => 'font-weight: bold;',
@@ -98,20 +92,21 @@ function theme_storminvoice_list($header, $invoices, $itemsperpage, $totals_topa
       'style' => 'text-align: right;',
     ),
   );
-  $rows[key(end($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals_topay->tax1),
     'style' => 'text-align: right;',
   );
-  $rows[key(end($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals_topay->tax2),
     'style' => 'text-align: right;',
   );
-  $rows[key(end($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals_topay->total),
     'style' => 'text-align: right;',
   );
+  $rows[] = $row;
 
-  $rows[] = array(
+  $row = array(
     array(
       'data' => t('Total paid'),
       'style' => 'font-weight: bold;',
@@ -121,20 +116,21 @@ function theme_storminvoice_list($header, $invoices, $itemsperpage, $totals_topa
       'style' => 'text-align: right;',
     ),
   );
-  $rows[end(array_keys($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals_paid->tax1),
     'style' => 'text-align: right;',
   );
-  $rows[end(array_keys($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals_paid->tax2),
     'style' => 'text-align: right;',
   );
-  $rows[end(array_keys($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals_paid->total),
     'style' => 'text-align: right;',
   );
+  $rows[] = $row;
 
-  $rows[] = array(
+  $row = array(
     array(
       'data' => t('Total'),
       'style' => 'font-weight: bold;',
@@ -144,18 +140,19 @@ function theme_storminvoice_list($header, $invoices, $itemsperpage, $totals_topa
       'style' => 'text-align: right;',
     ),
   );
-  $rows[end(array_keys($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals->tax1),
     'style' => 'text-align: right;',
   );
-  $rows[end(array_keys($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals->tax2),
     'style' => 'text-align: right;',
   );
-  $rows[end(array_keys($rows))][] = array(
+  $row[] = array(
     'data' => sprintf('%.2f', $totals->total),
     'style' => 'text-align: right;',
   );
+  $rows[] = $row;
 
   $o .= theme('table', $header, $rows);
 
diff --git a/stormnote/stormnote.admin.inc b/stormnote/stormnote.admin.inc
index e6dfd9d..73ceb6c 100644
--- a/stormnote/stormnote.admin.inc
+++ b/stormnote/stormnote.admin.inc
@@ -68,7 +68,7 @@ function stormnote_list() {
     ),
   );
 
-  $s  = "SELECT n.title, sno.* FROM {node} AS n INNER JOIN {stormnote} AS sno ON n.vid=sno.vid WHERE n.status=1 AND n.type='stormnote' ";
+  $s  = "SELECT n.title, n.type, sno.* FROM {node} AS n INNER JOIN {stormnote} AS sno ON n.vid=sno.vid WHERE n.status=1 AND n.type='stormnote' ";
 
   $where = array();
   $args = array();
diff --git a/stormnote/stormnote.theme.inc b/stormnote/stormnote.theme.inc
index 16a7285..d8723d5 100644
--- a/stormnote/stormnote.theme.inc
+++ b/stormnote/stormnote.theme.inc
@@ -8,20 +8,13 @@ function theme_stormnote_list($header, $notes) {
   $rows = array();
 
   foreach ($notes as $note) {
-    $n = new stdClass();
-    $n->nid = $note->nid;
-    $n->uid = $note->uid;
-    $n->organization_nid = $note->organization_nid;
-    $n->project_nid = $note->project_nid;
-    $n->task_nid = $note->task_nid;
-    $n->type = 'stormnote';
     $rows[] = array(
       l($note->organization_title, 'node/'. $note->organization_nid),
       l($note->project_title, 'node/'. $note->project_nid),
       l($note->task_title, 'node/'. $note->task_nid),
       l($note->title, 'node/'. $note->nid),
       array(
-        'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
+        'data' => storm_icon_edit_node($note, $_GET) .'&nbsp;'. storm_icon_delete_node($note, $_GET),
         'class' => 'storm_list_operations',
       ),
     );
diff --git a/stormorganization/stormorganization.theme.inc b/stormorganization/stormorganization.theme.inc
index 1dd3921..04633f0 100644
--- a/stormorganization/stormorganization.theme.inc
+++ b/stormorganization/stormorganization.theme.inc
@@ -10,16 +10,11 @@ function theme_stormorganization_list($header, $organizations) {
   $rows = array();
   $countries = storm_attributes_bydomain('Country');
   foreach ($organizations as $key => $organization) {
-    $n = new stdClass();
-    $n->nid = $organization->nid;
-    $n->uid = $organization->uid;
-    $n->type = 'stormorganization';
-
     $rows[] = array(
       l($organization->title, 'node/'. $organization->nid),
       check_plain($countries['values'][$organization->country]),
       array(
-        'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
+        'data' => storm_icon_edit_node($organization, $_GET) .'&nbsp;'. storm_icon_delete_node($organization, $_GET),
         'class' => 'storm_list_operations',
       ),
     );
diff --git a/stormperson/stormperson.admin.inc b/stormperson/stormperson.admin.inc
index a7822fa..e8c14b4 100644
--- a/stormperson/stormperson.admin.inc
+++ b/stormperson/stormperson.admin.inc
@@ -1,4 +1,4 @@
-<?php
+v<?php
 
 /**
  * @file
diff --git a/stormperson/stormperson.theme.inc b/stormperson/stormperson.theme.inc
index 185bf1b..2cdc03d 100644
--- a/stormperson/stormperson.theme.inc
+++ b/stormperson/stormperson.theme.inc
@@ -7,19 +7,12 @@
 function theme_stormperson_list($header, $people) {
   $rows = array();
   foreach ($people as $person) {
-    $n = new stdClass();
-    $n->nid = $person->nid;
-    $n->uid = $person->uid;
-    $n->user_uid = $person->user_uid;
-    $n->organization_nid = $person->organization_nid;
-    $n->type = 'stormperson';
-
     $rows[] = array(
       l($person->organization_title, 'node/'. $person->organization_nid),
       l($person->title, 'node/'. $person->nid) . theme('mark', node_mark($person->nid, $person->changed)),
       l($person->email, 'mailto:'. $person->email),
       array(
-        'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
+        'data' => storm_icon_edit_node($person, $_GET) .'&nbsp;'. storm_icon_delete_node($person, $_GET),
         'class' => 'storm_list_operations',
       ),
     );
diff --git a/stormticket/stormticket.theme.inc b/stormticket/stormticket.theme.inc
index 675eafb..e20b858 100644
--- a/stormticket/stormticket.theme.inc
+++ b/stormticket/stormticket.theme.inc
@@ -8,12 +8,6 @@ function theme_stormticket_list($header, $tickets) {
 
   $rows = array();
   foreach ($tickets as $ticket) {
-    $n = new stdClass();
-    $n->nid = $ticket->nid;
-    $n->uid = $ticket->uid;
-    $n->organization_nid = $ticket->organization_nid;
-    $n->type = 'stormticket';
-
     $rows[] = array(
       storm_icon('category_'. $ticket->ticketcategory, storm_attribute_value('Ticket category', $ticket->ticketcategory)),
       l($ticket->organization_title, 'node/'. $ticket->organization_nid),
@@ -23,7 +17,7 @@ function theme_stormticket_list($header, $tickets) {
       storm_icon('status_'. $ticket->ticketstatus, storm_attribute_value('Ticket status', $ticket->ticketstatus)),
       storm_icon('priority_'. $ticket->ticketpriority, storm_attribute_value('Ticket priority', $ticket->ticketpriority)),
       array(
-        'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
+        'data' => storm_icon_edit_node($ticket, $_GET) .'&nbsp;'. storm_icon_delete_node($ticket, $_GET),
         'class' => 'storm_list_operations',
       ),
     );
diff --git a/stormtimetracking/stormtimetracking.theme.inc b/stormtimetracking/stormtimetracking.theme.inc
index e60aa43..c1d3150 100644
--- a/stormtimetracking/stormtimetracking.theme.inc
+++ b/stormtimetracking/stormtimetracking.theme.inc
@@ -7,14 +7,6 @@
 function theme_stormtimetracking_list($header, $timetrackings, $billing_duration) {
   $rows = array();
   foreach ($timetrackings as $timetracking) {
-    $n = new stdClass();
-    $n->nid = $timetracking->nid;
-    $n->uid = $timetracking->uid;
-    $n->organization_nid = $timetracking->organization_nid;
-    $n->project_nid = $timetracking->project_nid;
-    $n->task_nid = $timetracking->task_nid;
-    $n->ticket_nid = $timetracking->ticket_nid;
-    $n->type = 'stormtimetracking';
     $rows[] = array(
       l($timetracking->organization_title, 'node/'. $timetracking->organization_nid),
       l($timetracking->project_title, 'node/'. $timetracking->project_nid),
@@ -22,7 +14,7 @@ function theme_stormtimetracking_list($header, $timetrackings, $billing_duration
       format_date($timetracking->trackingdate, 'small'),
       array('data' => sprintf('%.2f', $timetracking->billing_duration), 'align' => 'right'),
       array(
-        'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
+        'data' => storm_icon_edit_node($timetracking, $_GET) .'&nbsp;'. storm_icon_delete_node($timetracking, $_GET),
         'class' => 'storm_list_operations',
       ),
     );
