diff --git buymeabeer.info buymeabeer.info
index 35d6d5a..beb132b 100644
--- buymeabeer.info
+++ buymeabeer.info
@@ -1,4 +1,7 @@
 ; $Id$
 name = Buy me a beer
 description = "A Drupal module that allows donations via Paypal to buy beer."
-core = 6.x
\ No newline at end of file
+core = 7.x
+files[] = buymeabeer.module
+files[] = buymeabeer.install
+files[] = buymeabeer.admin.inc
diff --git buymeabeer.module buymeabeer.module
index 0e2959f..29f5fad 100644
--- buymeabeer.module
+++ buymeabeer.module
@@ -33,43 +33,41 @@ function buymeabeer_menu() {
 function buymeabeer_theme() {
   return array(
     'buymeabeer_link' => array(
-      'arguments' => array('link' => NULL)
+      'variables' => array('link' => NULL)
     )
   );
 }
 
 /**
- * Implementation of hook_nodeapi().
+ * Implementation of hook_node_view().
  */
-function buymeabeer_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
-  if ($op == 'view') {
-    //Check our node is one of the checked types
-    if (in_array($node->type, variable_get('buymeabeer_node_types', array()), TRUE)) {
-      $display_link = FALSE;
-      switch (variable_get('buymeabeer_teaser_full_view', 0)) {
-        // display in full view only
-        case 0:
-          if (!$a3) {
-            $display_link = TRUE;
-          }
-          break;
+function buymeabeer_node_view(&$node, $a3 = NULL, $a4 = NULL) {
+  //Check our node is one of the checked types
+  if (in_array($node->type, variable_get('buymeabeer_node_types', array()), TRUE)) {
+    $display_link = FALSE;
+    switch (variable_get('buymeabeer_teaser_full_view', 0)) {
+      // display in full view only
+      case 0:
+        if (!$a3) {
+          $display_link = TRUE;
+        }
+        break;
         // display in teaser only
-        case 1:
-          if ($a3) {
-            $display_link = TRUE;
-          }
-          break;
-        // display in full view and teaser
-        case 2:
+      case 1:
+        if ($a3) {
           $display_link = TRUE;
-          break;
-      }
-      if ($display_link) {
-        $node->content['buymeabeer_ad'] = array(
-          '#value' => buymeabeer_paypal_link($node),
-          '#weight' => variable_get('buymeabeer_weight', 20)
-        );
-      }
+        }
+        break;
+        // display in full view and teaser
+      case 2:
+        $display_link = TRUE;
+        break;
+    }
+    if ($display_link) {
+      $node->content['buymeabeer_ad'] = array(
+        '#value' => buymeabeer_paypal_link($node),
+        '#weight' => variable_get('buymeabeer_weight', 20)
+      );
     }
   }
 }
@@ -96,7 +94,7 @@ function buymeabeer_paypal_link($node) {
       'attributes' => array('class' => 'buymeabeer-link', 'title' => $title_text)
     )
   );
-  return theme('buymeabeer_link', $link);
+  return theme('buymeabeer_link', array('link' => $link));
 }
 
 /**
@@ -133,36 +131,40 @@ function buymeabeer_link($type, $object = NULL, $teaser = FALSE) {
 /**
  * theme function for link display
  */
-function theme_buymeabeer_link($link) {
+function theme_buymeabeer_link($vars) {
+  $link = $vars['link'];
   return '<div class="buymeabeer">'. $link .'</div>';
 }
 
 /**
- *Implementation of hook_user().
+ * Implementation of hook_user_form().
  */
-function buymeabeer_user($op, &$edit, &$account, $category = NULL) {
+function buymeabeer_user(&$edit, &$account, $category = NULL) {
   if (variable_get('buymeabeer_userbeer_enable', 0)) {
-    switch ($op) {
-      case 'form':
-        $form['buymeabeer'] = array(
-          '#type' => 'fieldset',
-          '#title' => t('Beer donation settings'),
-          '#collapsible' => TRUE,
-          '#weight' => 10
-        );
-        $form['buymeabeer']['buymeabeer_paypal_mail'] = array(
-          '#type' => 'textfield',
-          '#title' => t('Your paypal email'),
-          '#description' => t('Enter your paypal email address here to receive beer donations'),
-          '#default_value' => $account->buymeabeer_paypal_mail,
-          '#size' => 40,
-          '#maxlength' => 255,
-        );
-        return $form;
-      case 'submit':
-        $edit['data'] = serialize($edit['buymeabeer_paypal_mail']);
-        break;
-    }
+    $form['buymeabeer'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Beer donation settings'),
+      '#collapsible' => TRUE,
+      '#weight' => 10
+    );
+    $form['buymeabeer']['buymeabeer_paypal_mail'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Your paypal email'),
+      '#description' => t('Enter your paypal email address here to receive beer donations'),
+      '#default_value' => $account->buymeabeer_paypal_mail,
+      '#size' => 40,
+      '#maxlength' => 255,
+    );
+    return $form;
+  }
+}
+
+/**
+ * Implementation of hook_user_submit().
+ */
+function buymeabeer_user(&$edit, &$account, $category = NULL) {
+  if (variable_get('buymeabeer_userbeer_enable', 0)) {
+    $edit['data'] = serialize($edit['buymeabeer_paypal_mail']);
   }
 }
 
@@ -181,4 +183,4 @@ function buymeabeer_get_paypal_user_email($uid) {
     return $account->buymeabeer_paypal_mail;
   }
   return FALSE;
-}
\ No newline at end of file
+}
diff --git js/buymeabeer_admin.js js/buymeabeer_admin.js
index 6debeb2..940a9e8 100644
--- js/buymeabeer_admin.js
+++ js/buymeabeer_admin.js
@@ -16,4 +16,4 @@ $(function(){
       buymeabeer_user_link_in_comment.attr('disabled', 'disabled').attr('checked', '');
     }
   });
-});
\ No newline at end of file
+});
