diff --git a/stockapi.inc b/stockapi.inc
index c5afb5f..1d875e9 100644
--- a/stockapi.inc
+++ b/stockapi.inc
@@ -10,7 +10,7 @@
  *
  * @param $symbols array
  *   An array of ticker symbols to send to Yahoo!. There is not limit on the
- *   number of symbols. Yahoo! limits 200 symbols per request, so we queue up 
+ *   number of symbols. Yahoo! limits 200 symbols per request, so we queue up
  *   the request into batches.
  *
  * @return
@@ -45,34 +45,37 @@ function stockapi_fetch($symbols) {
  * Save a single stock quote to the database.
  *
  * @param $stock object
- *   The stock object keys' must match the field names of the database table. 
- *   The stock object values' are the data to insert. 
+ *   The stock object keys' must match the field names of the database table.
+ *   The stock object values' are the data to insert.
  *
- * @return 
+ * @return
  *   TRUE on success, FALSE on failure
  */
 function stockapi_save($stock) {
-  if (db_result(db_query("SELECT symbol FROM {stockapi} WHERE symbol = '%s'", $stock->symbol))) {
+
+  // Fix potential text in float fields.
+  $stock = _stockapi_fix_floats($stock);
+
+  if (db_query("SELECT symbol FROM {stockapi} WHERE symbol = :symbol", array(':symbol' => $stock->symbol))->fetchField()) {
     // Update
-    $fields = $values = array();
-    foreach ($stock as $field => $value) {
-      if ($field != 'symbol') { // It's redundant to update the stock symbol
-        $fields[] = $field .'='. _stockapi_sprintf($field);
-        $values[] = $value; 
-      }
-    }
-    $values[] = $stock->symbol;
-    return db_query("UPDATE {stockapi} SET ". implode(',', $fields). " WHERE symbol = '%s'", $values);
+
+    $stock = (array)$stock;
+    unset($stock['symbol']); // Primary key
+
+    $updated = db_update('stockapi')
+      ->fields((array)$stock)
+      ->condition('symbol', $stock->symbol)
+      ->execute();
+
+    return $updated;
   }
   else {
     //Insert
-    $fields = $values = array();
-    foreach ($stock as $field => $value) {
-      $fields[] = $field;
-      $sprintf[] = _stockapi_sprintf($field);
-      $values[] = $value;
-    }
-    return db_query("INSERT INTO {stockapi} (". implode(', ', $fields) .") VALUES (". implode(', ', $sprintf) .")", $values);
+    $inserted = db_insert('stockapi')
+      ->fields((array)$stock)
+      ->execute();
+
+    return $inserted;
   }
 }
 
@@ -80,21 +83,24 @@ function stockapi_save($stock) {
  * Return ticker information for a single symbol from our database, not Yahoo!
  *
  * @param $symbol string
- *   The ticker symbol to retrieve information for. 
+ *   The ticker symbol to retrieve information for.
  * @param $q string
- *   The type of information to retrieve. Can be either: basic, extended, 
- *   or realtime. The default is the site-wide setting, which is usually the 
+ *   The type of information to retrieve. Can be either: basic, extended,
+ *   or realtime. The default is the site-wide setting, which is usually the
  *   best bet here.
  * @return object
  */
 function stockapi_load($symbol, $q = NULL) {
   static $stocks = array();
-  
+
   if (!isset($stocks[$symbol])) {
     $fields = _stockapi_get_fields($q);
-    $stocks[$symbol] = db_fetch_object(db_query('SELECT '. implode(', ', $fields) ." FROM {stockapi} WHERE symbol = '%s'", $symbol)); 
+    $results = db_query("SELECT " . implode(',', $fields) . " FROM {stockapi} WHERE symbol = :symbol", array(':symbol' => $symbol));
+    foreach($results as $result) {
+      $stocks[$symbol] = $result;
+    }
   }
-  
+
   return $stocks[$symbol];
 }
 
@@ -102,23 +108,24 @@ function stockapi_load($symbol, $q = NULL) {
  * Return ticker information for a batch of symbols from our database, not Yahoo!
  *
  * @param $symbol array
- *   An array of ticker symbols to retrieve information for. 
+ *   An array of ticker symbols to retrieve information for.
  * @param $q string
- *   The type of information to retrieve. Can be either: basic, extended, 
- *   or realtime. The default is the site-wide setting, which is usually the 
+ *   The type of information to retrieve. Can be either: basic, extended,
+ *   or realtime. The default is the site-wide setting, which is usually the
  *   best bet here.
  * @return array
  *   An array of stocks, keyed by their ticker symbol. Each stock is an object within the array.
  */
 function stockapi_multiload($symbol, $q = NULL) {
   $stocks = array();
-  
+
   $fields = _stockapi_get_fields($q);
-  $result = db_query('SELECT '. implode(', ', $fields) .' FROM {stockapi} WHERE symbol IN ('. implode(', ', array_map('_stockapi_quote_it', $symbol)) .')'); 
-  while ($stock = db_fetch_object($result)) {
+  $symbols = implode(', ', array_map('_stockapi_quote_it', $symbol));
+  $results = db_query('SELECT ' . implode(', ', $fields) . ' FROM {stockapi} WHERE symbol IN (:symbols)', array(':symbols' => $symbols));
+  foreach ($results as $stock) {
     $stocks[$stock->symbol] = $stock;
   }
-  
+
   return $stocks;
 }
 
@@ -126,7 +133,7 @@ function stockapi_multiload($symbol, $q = NULL) {
  * Wrap a string in quotes. Usually used with array_map().
  */
 function _stockapi_quote_it($string, $style = 'single') {
-  return ($style != 'single') ? '"'. $string. '"' : "'". $string. "'";
+  return ($style != 'single') ? '"' . $string . '"' : "'" . $string . "'";
 }
 
 /**
@@ -134,9 +141,9 @@ function _stockapi_quote_it($string, $style = 'single') {
  */
 function stockapi_get_quotetype($q = NULL) {
   $quotetype['basic']    = 'snl1d1t1c1p2va2bapomwerr1dyj1x';
-  $quotetype['extended'] = $quotetype['basic']. 's7t8e7e8e9r6r7r5b4p6p5j4m3m4';
-  $quotetype['realtime'] = $quotetype['basic']. 'b2b3k2k1c6m2j3';
-  
+  $quotetype['extended'] = $quotetype['basic'] . 's7t8e7e8e9r6r7r5b4p6p5j4m3m4';
+  $quotetype['realtime'] = $quotetype['basic'] . 'b2b3k2k1c6m2j3';
+
   if ($quotetype[$q]) {
     return $quotetype[$q];
   }
@@ -145,55 +152,35 @@ function stockapi_get_quotetype($q = NULL) {
 }
 
 /**
- * Return the sprintf syntax of a database field based on the stockapi schema.
- */
-function _stockapi_sprintf($dbname) {
-  static $sprintf = array();
-  
-  if(!isset($sprintf[$dbname])) {
-    $schema = drupal_get_schema('stockapi'); 
-    foreach ($schema['fields'] as $name => $field) {
-      switch ($field['type']) {
-        case 'int':   $sprintf[$name] = '%d'; break;
-        case 'float': $sprintf[$name] = '%f'; break;
-        default:      $sprintf[$name] = '"%s"';
-      }
-    }
-  }
-  
-  return $sprintf[$dbname];
-}
-
-/**
  * Convert a stock from Yahoo! to its obect oriented counterpart.
  *
- * @return object 
- **/
+ * @return object
+ */
 function _stockapi_to_object($stock, $q = NULL) {
   $fields = _stockapi_get_fields($q);
-  
+
   $ns = count($fields);
-  for ($i=0; $i<$ns ; $i++) { 
+  for ($i=0; $i<$ns ; $i++) {
     $s->$fields[$i] = $stock[$i];
   }
-  $s->updated = time();
+  $s->updated = REQUEST_TIME;
 
   return $s;
 }
 
 /**
- * Given the current site-wide quotetype, generate the actual database fields 
- * names currently active. These field names usually double as the keys for the 
+ * Given the current site-wide quotetype, generate the actual database fields
+ * names currently active. These field names usually double as the keys for the
  * stock object.
  */
 function _stockapi_get_fields($q = NULL) {
   if (!$q) $q = variable_get('stockapi_quotetype', 'basic');
   preg_match_all('/[a-z][0-9]?/', stockapi_get_quotetype($q), $yfields);
   $yfields = $yfields[0];
-  
-  $schema = drupal_get_schema('stockapi'); 
+
+  $schema = drupal_get_schema('stockapi');
   $map = _stockapi_yahoo_map();
-  
+
   $ns = count($yfields);
   $s = array();
   for ($i=0; $i<$ns ; $i++) {
@@ -208,15 +195,15 @@ function _stockapi_get_fields($q = NULL) {
 /**
  * Return an array of Yahoo! fields keys mapped to the database field names.
  *
- * Note: Check out stockapi.install. We added a special key to the database 
+ * Note: Check out stockapi.install. We added a special key to the database
  * install schema to map the Yahoo! field name to our database field names. The
  * new key is named 'yahoo'.
  */
 function _stockapi_yahoo_map() {
   static $map = NULL;
-  
+
   if (!isset($map)) {
-    $schema = drupal_get_schema('stockapi'); 
+    $schema = drupal_get_schema('stockapi');
     foreach ($schema['fields'] as $name => $field) {
       if (isset($field['yahoo'])) {
         $y = $field['yahoo'];
@@ -262,3 +249,20 @@ function _stockapi_request_failure($results) {
   }
   return FALSE;
 }
+
+/**
+ * Internal helper function to change text values returned for float
+ * fields to '0'.
+ */
+function _stockapi_fix_floats($stock){
+  $stock = (array)$stock;
+  $schema = drupal_get_schema('stockapi');
+
+  foreach ($schema['fields'] as $name => $field) {
+    if ($field['type'] == 'float' && !is_numeric($stock[$name])) {
+      $stock[$name] = 0;
+    }
+  }
+
+  return (object)$stock;
+}
diff --git a/stockapi.info b/stockapi.info
index 9914361..419e488 100644
--- a/stockapi.info
+++ b/stockapi.info
@@ -1,10 +1,4 @@
 name = Stock API
 description = "Retrieve stock information from Yahoo! and cache them in the database."
 package = Stock
-core = 6.x
-
-; Information added by drupal.org packaging script on 2008-03-11
-version = "6.x-dev"
-project = "stockapi"
-datestamp = "1205268312"
-
+core = 7.x
diff --git a/stockapi.install b/stockapi.install
index 0d145c2..0dd1948 100644
--- a/stockapi.install
+++ b/stockapi.install
@@ -1,576 +1,565 @@
 <?php
 
+/**
+ * @file
+ * Contains the schema, install, and uninstall functions for StockAPI.
+ */
+
 /*
- * Implementation of hook_schema
+ * Implements hook_schema().
  */
 function stockapi_schema() {
   $schema['stockapi'] = array(
-    'description' => t('A table to store stock information'),
+    'description' => 'A table to store stock information',
     'fields' => array(
       'symbol' => array(
-        'description' => t('Symbol'),
+        'description' => 'Symbol',
         'type' => 'varchar',
         'length' => 12,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 's'),
       'name' => array(
-        'description' => t('Company Name'),
+        'description' => 'Company Name',
         'type' => 'varchar',
         'length' => 64,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'n'),
       'last_trade_with_time' => array(
-        'description' => t('Last Trade (With Time)'),
+        'description' => 'Last Trade (With Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'l'),
       'last_trade_price_only' => array(
-        'description' => t('Last Trade (Price Only)'),
+        'description' => 'Last Trade (Price Only)',
         'type' => 'float',
         'not null' => TRUE,
-        'default' => 0, 
+        'default' => 0,
         'yahoo' => 'l1'),
       'last_trade_date' => array(
-        'description' => t('Last Trade Date'),
+        'description' => 'Last Trade Date',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'd1'),
       'last_trade_time' => array(
-        'description' => t('Last Trade Time'),
+        'description' => 'Last Trade Time',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 't1'),
       'last_trade_size' => array(
-        'description' => t('Last Trade Size'),
+        'description' => 'Last Trade Size',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'k3'),
       'chg_and_pct_chg' => array(
-        'description' => t('Change and Percent Change'),
+        'description' => 'Change and Percent Change',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'c'),
       'chg' => array(
-        'description' => t('Change'),
+        'description' => 'Change',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'c1'),
       'pct_chg' => array(
-        'description' => t('Change in Percent'),
+        'description' => 'Change in Percent',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'p2'),
       'ticker_trend' => array(
-        'description' => t('Ticker Trend'),
+        'description' => 'Ticker Trend',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 't7'),
       'volume' => array(
-        'description' => t('Volume'),
+        'description' => 'Volume',
         'type' => 'float',
         'length' => 25,
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'v'),
       'avg_daily_volume' => array(
-        'description' => t('Average Daily Volume'),
+        'description' => 'Average Daily Volume',
         'type' => 'float',
         'length' => 25,
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'a2'),
       'more_info' => array(
-        'description' => t('More Info'),
+        'description' => 'More Info',
         'type' => 'varchar',
         'length' => 255,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'i'),
       'trade_links' => array(
-        'description' => t('Trade Links'),
+        'description' => 'Trade Links',
         'type' => 'varchar',
         'length' => 255,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 't6'),
       'bid' => array(
-        'description' => t('Bid'),
+        'description' => 'Bid',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'b'),
       'bid_size' => array(
-        'description' => t('Bid Size'),
+        'description' => 'Bid Size',
         'type' => 'varchar',
         'length' => 50,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'b6'),
       'ask' => array(
-        'description' => t('Ask'),
+        'description' => 'Ask',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'a'),
       'ask_size' => array(
-        'description' => t('Ask Size'),
+        'description' => 'Ask Size',
         'type' => 'varchar',
         'length' => 50,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'a5'),
       'previous_close' => array(
-        'description' => t('Previous Close'),
+        'description' => 'Previous Close',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'p'),
       'open' => array(
-        'description' => t('Open'),
+        'description' => 'Open',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'o'),
       'days_range' => array(
-        'description' => t('Day\'s Range'),
+        'description' => 'Day\'s Range',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'm'),
       '52_week_range' => array(
-        'description' => t('52-week Range'),
+        'description' => '52-week Range',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'w'),
       'chg_52_week_low' => array(
-        'description' => t('Change From 52-week Low'),
+        'description' => 'Change From 52-week Low',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'j5'),
       'pct_chg_from_52_wk_low' => array(
-        'description' => t('Percent Change From 52-wk Low'),
+        'description' => 'Percent Change From 52-wk Low',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'j6'),
       'chg_from_52_wk_high' => array(
-        'description' => t('Change From 52-wk High'),
+        'description' => 'Change From 52-wk High',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'k4'),
       'pct_chg_from_52_wk_high' => array(
-        'description' => t('Percent Change From 52-wk High'),
+        'description' => 'Percent Change From 52-wk High',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'k5'),
       'eps' => array(
-        'description' => t('Earnings/Share'),
+        'description' => 'Earnings/Share',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'e'),
       'pe_ratio' => array(
-        'description' => t('P/E Ratio'),
+        'description' => 'P/E Ratio',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'r'),
       'short_ratio' => array(
-        'description' => t('Short Ratio'),
+        'description' => 'Short Ratio',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 's7'),
       'dividend_pay_date' => array(
-        'description' => t('Dividend Pay Date'),
+        'description' => 'Dividend Pay Date',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'r1'),
       'ex_dividend_date' => array(
-        'description' => t('Ex-Dividend Date'),
+        'description' => 'Ex-Dividend Date',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'q'),
       'dividend_per_share' => array(
-        'description' => t('Dividend/Share'),
+        'description' => 'Dividend/Share',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'd'),
       'dividend_yield' => array(
-        'description' => t('Dividend Yield'),
+        'description' => 'Dividend Yield',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'y'),
       'float_shares' => array(
-        'description' => t('Float Shares'),
+        'description' => 'Float Shares',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'f6'),
       'market_cap' => array(
-        'description' => t('Market Capitalization'),
+        'description' => 'Market Capitalization',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'j1'),
       'one_yr_target_price' => array(
-        'description' => t('1-yr Target Price'),
+        'description' => '1-yr Target Price',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 't8'),
       'eps_est_current_yr' => array(
-        'description' => t('EPS Estimate Current Year'),
+        'description' => 'EPS Estimate Current Year',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'e7'),
       'eps_est_next_year' => array(
-        'description' => t('EPS Estimate Next Year'),
+        'description' => 'EPS Estimate Next Year',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'e8'),
       'eps_est_next_quarter' => array(
-        'description' => t('EPS Estimate Next Quarter'),
+        'description' => 'EPS Estimate Next Quarter',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'e9'),
       'price_per_eps_est_current_year' => array(
-        'description' => t('Price/EPS Estimate Current Year'),
+        'description' => 'Price/EPS Estimate Current Year',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'r6'),
       'price_per_eps_est_next_year' => array(
-        'description' => t('Price/EPS Est. Next Year'),
+        'description' => 'Price/EPS Est. Next Year',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'r7'),
       'peg_ratio' => array(
-        'description' => t('PEG Ratio'),
+        'description' => 'PEG Ratio',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'r5'),
       'book_value' => array(
-        'description' => t('Book Value'),
+        'description' => 'Book Value',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'b4'),
       'price_per_book' => array(
-        'description' => t('Price/Book'),
+        'description' => 'Price/Book',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'p6'),
       'price_per_sales' => array(
-        'description' => t('Price/Sales'),
+        'description' => 'Price/Sales',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'p5'),
       'ebitda' => array(
-        'description' => t('EBITDA'),
+        'description' => 'EBITDA',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'j4'),
       '50_day_moving_average' => array(
-        'description' => t('50-day Moving Average'),
+        'description' => '50-day Moving Average',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'm3'),
       'chg_frm_50_day_ma' => array(
-        'description' => t('Change From 50-day Moving Average'),
+        'description' => 'Change From 50-day Moving Average',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'm7'),
       'pct_chg_frm_50_day_ma' => array(
-        'description' => t('Percent Change From 50-day Moving Average'),
+        'description' => 'Percent Change From 50-day Moving Average',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'm8'),
       '200_day_moving_average' => array(
-        'description' => t('200-day Moving Average'),
+        'description' => '200-day Moving Average',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'm4'),
       'chg_frm_200_day_ma' => array(
-        'description' => t('Change From 200-day Moving Average'),
+        'description' => 'Change From 200-day Moving Average',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'm5'),
       'pct_chg_frm_200_day_ma' => array(
-        'description' => t('Percent Change From 200-day Moving Average'),
+        'description' => 'Percent Change From 200-day Moving Average',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'm6'),
       'shares_owned' => array(
-        'description' => t('Shares Owned'),
+        'description' => 'Shares Owned',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 's1'),
       'price_paid' => array(
-        'description' => t('Price Paid'),
+        'description' => 'Price Paid',
         'type' => 'float',
         'not null' => TRUE,
         'default' => 0,
         'yahoo' => 'p1'),
       'commission' => array(
-        'description' => t('Commission'),
+        'description' => 'Commission',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'c3'),
       'holdings_value' => array(
-        'description' => t('Holdings Value'),
+        'description' => 'Holdings Value',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'v1'),
       'days_value_change' => array(
-        'description' => t('Day\'s Value Change'),
+        'description' => 'Day\'s Value Change',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'w1'),
       'holdings_gain_pct' => array(
-        'description' => t('Holdings Gain Percent'),
+        'description' => 'Holdings Gain Percent',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'g1'),
       'holdings_gain' => array(
-        'description' => t('Holdings Gain'),
+        'description' => 'Holdings Gain',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'g4'),
       'trade_date' => array(
-        'description' => t('Trade Date'),
+        'description' => 'Trade Date',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'd2'),
       'annualized_gain' => array(
-        'description' => t('Annualized Gain'),
+        'description' => 'Annualized Gain',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'g3'),
       'high_limit' => array(
-        'description' => t('Low Limit'),
+        'description' => 'Low Limit',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'l2'),
       'notes' => array(
-        'description' => t('Notes'),
+        'description' => 'Notes',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'l3'),
       'last_trade_rt' => array(
-        'description' => t('Last Trade (Real-Time) with Time'),
+        'description' => 'Last Trade (Real-Time) with Time',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'k1'),
       'bid_rt' => array(
-        'description' => t('Bid (Real-Time)'),
+        'description' => 'Bid (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'b3'),
       'ask_rt' => array(
-        'description' => t('Ask (Real-Time)'),
+        'description' => 'Ask (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'b2'),
       'pct_chg_rt' => array(
-        'description' => t('Change Percent (Real-Time)'),
+        'description' => 'Change Percent (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'k2'),
       'chg_rt' => array(
-        'description' => t('Change (Real-Time)'),
+        'description' => 'Change (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'c6'),
       'holdings_value_rt' => array(
-        'description' => t('Holdings Value (Real-Time)'),
+        'description' => 'Holdings Value (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'v7'),
       'days_value_chg_rt' => array(
-        'description' => t('Day\'s Value Change (Real-Time)'),
+        'description' => 'Day\'s Value Change (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'w4'),
       'holdings_gain_pct_rt' => array(
-        'description' => t('Holdings Gain Percent (Real-Time)'),
+        'description' => 'Holdings Gain Percent (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'g5'),
       'holdings_gain_rt' => array(
-        'description' => t('Holdings Gain (Real-Time)'),
+        'description' => 'Holdings Gain (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'g6'),
       'days_range_rt' => array(
-        'description' => t('Day\'s Range (Real-Time)'),
+        'description' => 'Day\'s Range (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'm2'),
       'market_cap_rt' => array(
-        'description' => t('Market Cap (Real-Time)'),
+        'description' => 'Market Cap (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'j3'),
       'pe_rt' => array(
-        'description' => t('P/E (Real-Time)'),
+        'description' => 'P/E (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'r2'),
       'after_hours_change_rt' => array(
-        'description' => t('After Hours Change (Real-Time)'),
+        'description' => 'After Hours Change (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'c8'),
       'order_book_rt' => array(
-        'description' => t('Order Book (Real-Time)'),
+        'description' => 'Order Book (Real-Time)',
         'type' => 'varchar',
         'length' => 75,
         'not null' => TRUE,
         'default' => '',
         'yahoo' => 'i5'),
       'exchange' => array(
-        'description' => t('Stock Exchange'),
+        'description' => 'Stock Exchange',
         'type' => 'varchar',
         'length' => 16,
         'not null' => TRUE,
         'default' => '',
-        'yahoo' => 'x'),        
+        'yahoo' => 'x'),
       'updated' => array(
-        'description' => t('Last Update'),
+        'description' => 'Last Update',
         'type' => 'int',
         'unsigned' => TRUE,
         'not null' => TRUE,
         'default' => 0),
       ),
-      'primary key' => array('symbol')
+      'primary key' => array('symbol'),
     );
 
-    return $schema;
+  return $schema;
 }
 
-
 /**
- * Implementation of hook_install()
- *
- * This will automatically install the database tables for StockAPI.
- *
- */
-function stockapi_install() {
-    drupal_install_schema('stockapi');
-}
-
-/**
- * Implementation of hook_uninstall()
- *
- * This will automatically remove the MySQL database tables for StockAPI.
- *
+ * Implements hook_uninstall().
  */
 function stockapi_uninstall() {
-  // Remove the table
-  drupal_uninstall_schema('stockapi');
-  
+
   // Delete variables
   variable_del('stockapi_quotetype');
   variable_del('stockapi_fetch');
   variable_del('stockapi_fetch_last');
-}
\ No newline at end of file
+}
diff --git a/stockapi.module b/stockapi.module
index 4cea103..ff2852f 100644
--- a/stockapi.module
+++ b/stockapi.module
@@ -11,21 +11,21 @@
 module_load_include('inc', 'stockapi');
 
 /**
- * Implementation of hook_menu().
+ * Implements hook_menu().
  */
 function stockapi_menu() {
   $items = array();
 
   $items['admin/settings/stockapi'] = array(
     'title' => 'Stock API settings',
-    'description' => t('Configure cron run settings.'),
+    'description' => 'Configure cron run settings.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('stockapi_admin_settings'),
     'access arguments' => array('administer site configuration'),
   );
   $items['stockapi'] = array(
     'title' => 'Stock API',
-    'description' => t('Foo'),
+    'description' => 'Foo',
     'page callback' => 'stockapi_page',
     'access arguments' => array('access content'),
   );
@@ -34,24 +34,27 @@ function stockapi_menu() {
 }
 
 /**
- * Implementation of hook_cron().
+ * Implements hook_cron().
  */
 function stockapi_cron() {
-  if (time() - variable_get('stockapi_fetch_last', 0) > variable_get('stockapi_fetch', 3600)) {
+  if (REQUEST_TIME - variable_get('stockapi_fetch_last', 0) > variable_get('stockapi_fetch', 3600)) {
     $result = db_query_range('SELECT symbol FROM {stockapi} ORDER BY updated', 0, 199);
     $symbols = array();
-    while ($data = db_fetch_object($result)) {
+    foreach ($result as $data) {
       $symbols[] = $data->symbol;
     }
     $stocks = stockapi_fetch($symbols);
     foreach ($stocks as $key => $stock) {
       stockapi_save(_stockapi_to_object($stock));
     }
-    variable_set('stockapi_fetch_last', time());
+    variable_set('stockapi_fetch_last', REQUEST_TIME);
     cache_clear_all('variables', 'cache');
   }
 }
 
+/**
+ * Create the form for Stock API admin settings.
+ */
 function stockapi_admin_settings() {
   $period = drupal_map_assoc(array(900, 1800, 3600, 21600, 43200, 86400), 'format_interval');
   $rows   = drupal_map_assoc(array(30, 100, 500, 1000, 2500, 5000, 10000));
@@ -63,8 +66,8 @@ function stockapi_admin_settings() {
     '#options' => $period,
     '#description' => t('How often to refresh the stock data from Yahoo! Finance. Default is 1 hour (3600 seconds).'),
   );
-  
-  $quotetype = array('basic' => 'basic', 'extended' => 'extended', 'real-time' => 'realtime'); 
+
+  $quotetype = array('basic' => 'basic', 'extended' => 'extended', 'real-time' => 'realtime');
   $form['stockapi_quotetype'] = array(
     '#type' => 'select',
     '#title' => t('Select the type of quotes to retrieve'),
@@ -76,10 +79,13 @@ function stockapi_admin_settings() {
   return system_settings_form($form);
 }
 
+/**
+ *  Create the basic StockAPI page.
+ */
 function stockapi_page() {
-  $symbols = array('A','AAPL','AAUK','AAV','ABAX','ABB','ABCO','ABI','ABII','ABMD','ABT','ABV','ABX','ACAP','ACAS','ACC','ACG','ACI','ACL','ACOR','ACUR','ADBE','ADI','ADP','ADPT','ADS','ADSK','ADTN','ADVS','ADX','AEM','AFB','AFFY','AGG','AGN','AGU','AIA','AINV','AIXG','AKAM','AKR','AKRX','ALD','ALGN','ALKS','ALNY','ALOG','ALTR','ALX','ALXN','AMAG','AMAT','AMB','AMCC','AMCN','AME','AMED','AMG','AMGN','AMLN','AMMD','AMRI','AMSC','AMT','AMTD','AMX','ANAD','ANGO','ANH','ANR','ANSS','ANST','AOB','APA','APC','APEI','APF','APH','APOL','APPX','APWR','ARA','ARAY','ARB','ARBA','ARCC','ARD','ARE','AREX','ARMH','ARNA','ARRY','ARST','ARTC','ARTG','ARUN','ASA','ASEI','ASIA','ASR','ATB','ATE','ATF','ATHN','ATHR','ATMI','ATN','ATNI','ATVI','ATW','AU','AUXL','AUY','AVAV','AVB','AVK','AWC','AWF','AXYS','AYE','AZK','AZN','BABY','BANF','BAP','BARE','BAX','BBBB','BBD','BBEP','BBG','BBL','BCA','BCF','BCH','BCPC','BCR','BDE','BDV','BDX','BEAT','BEN','BEXP','BF-B','BFIN','BFK','BFS','BGCP','BGR','BHI','BHK','BHP','BIDU','BIIB','BIV','BK','BKCC','BKE','BKF','BKMU','BKT','BLE','BLK','BLKB','BLUD','BLW','BMC','BMI','BMR','BMRN','BMY','BNA','BNCL','BNI','BNS','BNT','BOE','BOH','BOKF','BPL','BPO','BPT','BRCD','BRCM','BRE','BRKL','BRKR','BRL','BRM','BRO','BRY','BSX','BTE','BTI','BTO','BTU','BUCY','BUD','BUSE','BVN','BWP','BX','BXP','BXS','BYM','BZF','BZP','CA','CACC','CAEI','CAM','CAP','CASS','CAVM','CBSH','CBST','CBU','CCBG','CCI','CCJ','CCL','CCMP','CCOI','CCU','CDE','CDR','CEDC','CEE','CEF','CELG','CEO','CEP','CEPH','CERN','CET','CETV','CF','CFFN','CFR','CFX','CGNX','CHCO','CHFC','CHH','CHI','CHK','CHKP','CHL','CHN','CHNR','CHT','CHTT','CHY','CIB','CIEN','CIG','CISG','CKXE','CL','CLB','CLDA','CLF','CLI','CLNE','CLP','CLR','CLWR','CME','CMED','CMG','CML','CMP','CMTL','CMZ','CNET','CNI','CNQ','CNQR','CNS','CNX','COG','COGT','COH','COMV','COV','CP','CPE','CPHD','CPLA','CPLP','CPRT','CPS','CPST','CPT','CPTS','CPWR','CRA','CREE','CRESY','CRK','CRL','CRM','CRME','CRO','CRR','CRT','CRXL','CRY','CRZO','CSCO','CSGP','CSQ','CSR','CSWC','CSX','CT','CTBI','CTCM','CTCT','CTRP','CTSH','CTXS','CUZ','CVA','CVBF','CVD','CVLT','CVTX','CWEI','CXG','CXO','CXW','CY','CYB','CYBS','CYBX','CYN','CYPB','DAC','DASTY','DBC','DBV','DCOM','DCS','DCT','DDR','DDUP','DECK','DEI','DEL','DEO','DES','DFS','DFT','DGIT','DHR','DHT','DHX','DIA','DIOD','DISCA','DLB','DLR','DM','DMLP','DMRC','DNA','DNB','DNDN','DNEX','DNN','DNP','DNR','DO','DOX','DPTR','DR','DRE','DRIV','DRQ','DRRX','DRYS','DSCP','DSM','DSU','DSX','DTSI','DV','DVN','DVY','DWA','EAC','EAD','EBAY','ECA','ECLP','ECOL','EDR','EDU','EEM','EFA','EFG','EFR','EFT','EFV','EFX','EGLE','EGN','EGO','EGOV','EGP','EGY','EHI','EHTH','EIG','EIM','EJ','ELG','ELN','ELON','ELOS','ELRC','ELS','EMF','ENDP','ENER','ENL','ENOC','ENP','ENSI','ENZ','EOC','EOG','EOI','EOS','EP','EPB','EPIQ','EPP','EPR','EQIX','EQR','EQT','EQY','ERC','ERES','ERF','ERTS','ESD','ESE','ESEA','ESGR','ESI','ESLR','ESS','ESV','ETB','ETG','ETO','ETV','ETW','EURX','EV','EVEP','EVG','EVT','EVTC','EVV','EVVV','EW','EWA','EWC','EWD','EWG','EWH','EWJ','EWL','EWM','EWP','EWQ','EWS','EWT','EWU','EWW','EWY','EWZ','EXAC','EXAR','EXBD','EXC','EXEL','EXLS','EXM','EXPE','EXPO','EXR','EZA','EZCH','EZM','EZU','FARO','FAST','FAX','FCBC','FCE-A','FCEL','FCF','FCL','FCN','FCT','FDG','FDRY','FDS','FEED','FEZ','FFC','FFIN','FFIV','FGF','FIF','FIG','FII','FLIR','FLY','FMBI','FMCN','FMER','FMO','FNB','FNFG','FNX','FOLD','FOR','FORM','FORR','FPO','FR','FRO','FRT','FRX','FSIN','FSLR','FSP','FST','FTEK','FTK','FWRD','FXI','G','GA','GAB','GAF','GAM','GASS','GBCI','GBL','GBN','GCS','GDP','GDV','GDX','GENZ','GERN','GEX','GF','GFA','GFI','GG','GGG','GGN','GGP','GHDX','GHL','GHM','GIGM','GIL','GILD','GIM','GIVN','GLAD','GLD','GLF','GLG','GLNG','GLQ','GLRE','GLS','GLW','GMCR','GMKT','GML','GMR','GMXR','GNK','GNTX','GOLD','GOOG','GPN','GPOR','GPRO','GRC','GRI','GRMN','GRS','GSG','GSH','GSK','GSOL','GSS','GST','GSX','GTE','GTI','GTXI','GTY','GU','GWR','GXDX','GYI','HAE','HAL','HALO','HANS','HBC','HBHC','HCBK','HCN','HCP','HDB','HEP','HERO','HEV','HGSI','HGT','HI','HIL','HIO','HITT','HIW','HIX','HK','HL','HLIT','HLTH','HME','HMIN','HMSY','HMY','HNBC','HNR','HNSN','HOLX','HOMB','HOO','HOS','HP','HPF','HPI','HPS','HQH','HR','HSVLY','HTD','HTH','HTLD','HTS','HTV','HTX','HXM','HYT','HYV','IAG','IART','IAU','IBB','IBKC','IBN','IBOC','ICE','ICF','ICGE','ICLR','ICON','ID','IDC','IDCC','IDIX','IDRA','IDTI','IDU','IDXX','IEF','IEP','IEV','IEX','IEZ','IFN','IGD','IGE','IGM','IGR','IGT','IGV','IHG','IHS','IIF','IIT','IIVI','IJH','IJJ','IJK','IJR','IJS','IJT','ILF','ILMN','IMA','IMAX','IMCL','INCY','INDB','INFA','INFN','INFY','INTC','INTU','INWK','IO','IOO','IPCR','IPGP','IPI','IRC','IRETS','IRIS','ISBC','ISCA','ISIL','ISIS','ISRG','ISYS','ITA','ITC','ITMN','ITU','IVAN','IVE','IVGN','IVV','IVW','IVZ','IWA','IWB','IWD','IWF','IWM','IWN','IWO','IWOV','IWP','IWR','IWS','IWV','IWW','IXC','IXJ','IXN','IXP','IYE','IYF','IYH','IYJ','IYK','IYM','IYR','IYT','IYW','IYY','IYZ','JASO','JCOM','JFR','JKE','JKH','JKHY','JLA','JNJ','JNPR','JNS','JOBS','JOE','JOYG','JPC','JPS','JPZ','JQC','JRJC','JRS','JSN','JTP','KBE','KDN','KF','KFN','KGC','KGS','KIM','KLAC','KNSY','KNX','KNXA','KO','KRC','KRG','KRNY','KSU','KTF','KWK','KYE','KYN','LAMR','LDK','LDR','LEO','LFC','LFL','LFT','LGCY','LGND','LIHR','LLNW','LLTC','LLY','LMDIA','LMNX','LNN','LO','LOGI','LOOP','LQD','LRN','LRY','LTC','LUFK','LUK','LULU','LVS','MA','MAA','MAC','MASI','MATK','MATW','MAV','MBT','MCD','MCF','MCHP','MCHX','MCO','MCR','MCRL','MCRS','MDAS','MDCO','MDR','MDRX','MDT','ME','MEDX','MEE','MELI','MFA','MFE','MFG','MFL','MGRC','MGU','MHN','MICC','MIL','MIN','MINI','MIR','MLM','MLNX','MMSI','MMT','MNT','MNTA','MO','MON','MORN','MOS','MPEL','MPW','MPWR','MQY','MR','MRB','MRH','MRK','MRVL','MRX','MSB','MSCC','MSCS','MSF','MSFT','MSTR','MTB','MTL','MTU','MUC','MUI','MVC','MVF','MVL','MVSN','MWE','MXB','MXF','MXI','MXT','MYD','MYGN','MYI','MYN','N','NAC','NAD','NAL','NAT','NATI','NBG','NBL','NBR','NBTB','NCTY','NCV','NCZ','NDAQ','NDSN','NE','NEM','NEOG','NETC','NETL','NFBK','NFJ','NFX','NG','NGPC','NGS','NHI','NHP','NICE','NIHD','NIO','NL','NLY','NMA','NMO','NMR','NMX','NMZ','NNDS','NNN','NOG','NOV','NOVL','NPBC','NPD','NPI','NPM','NPP','NPT','NPX','NQI','NQM','NQS','NQU','NRP','NRT','NSC','NSH','NSM','NSR','NTAP','NTCT','NTES','NTLS','NTRS','NUAN','NUV','NUVA','NVG','NVO','NVS','NVT','NWSB','NXY','NXZ','NYB','NYX','NZ','NZF','NZH','O','OEF','OEH','OFC','OHI','OII','OMAB','OMCL','OMRI','OMTR','ONB','ONNN','OPK','ORA','ORCL','ORIT','OSIP','OSIR','OTEX','OXPS','OXY','OZM','PAAS','PAC','PAL','PANL','PAR','PAX','PAYX','PBCT','PBF','PBNY','PBR','PBT','PBW','PCK','PCL','PCLN','PCN','PCP','PCS','PCX','PDC','PDE','PDLI','PDS','PDT','PDX','PEGA','PEO','PEP','PETD','PFE','PFN','PFP','PFS','PFWD','PG','PGH','PGJ','PGNX','PHD','PHI','PHK','PHO','PHT','PHX','PICO','PID','PIM','PKE','PKY','PLLL','PMCS','PMF','PMFG','PML','PMM','PMO','PMTC','PMX','PNC','PNFP','PODD','POT','POWI','POZN','PPA','PPDI','PPL','PPO','PPR','PPS','PPT','PQ','PRA','PRAA','PRF','PRFS','PRGS','PRK','PRO','PRSP','PSA','PSB','PSE','PSEC','PSEM','PST','PSY','PTEC','PTEN','PTIE','PTY','PVA','PVG','PVR','PVTB','PWB','PWC','PWE','PWJ','PWRD','PX','PXD','PXJ','PXP','PZN','QCOM','QCOR','QDEL','QELP','QGEN','QID','QLGC','QSFT','QSII','RAME','RATE','RAVN','RBA','RBCAA','RBCN','RBN','RCI','RCS','RDC','RDY','REG','REGN','RES','REXX','RGLD','RHT','RIG','RIGL','RIMM','RIO','RLF','RLRN','RMBS','RMD','RMG','RNOW','RNP','ROLL','ROMA','ROP','ROS','ROSE','ROY','RPF','RPT','RQI','RRC','RSP','RTIX','RTP','RTU','RUK','RVBD','RVT','RWR','RWX','RY','RYAAY','RYN','RZ','SAN','SAP','SAY','SB','SBAC','SBG','SBIB','SBLK','SBNY','SBR','SCBT','SCC','SCD','SCHW','SCMP','SCMR','SCOR','SCR','SD','SDS','SDTH','SDXC','SE','SEIC','SEP','SFI','SFL','SFNC','SFSF','SFY','SGEN','SGLP','SGMO','SGMS','SGP','SGY','SHEN','SHPGY','SHY','SIAL','SID','SIMO','SINA','SIRI','SIRO','SIVB','SJH','SJR','SJT','SJW','SKIL','SKT','SLAB','SLB','SLG','SLH','SLV','SLW','SM','SMBL','SMTC','SNCR','SNDA','SNG','SNH','SNHY','SNI','SNN','SNPS','SNY','SOHU','SOL','SONE','SONO','SONS','SOR','SPG','SPIL','SPN','SPNC','SPSS','SPWR','SQM','SQNM','SRCL','SRDX','SRO','SRVY','SSL','SSS','SSW','SSYS','STAR','STBA','STD','STEC','STEL','STJ','STOSY','STP','STR','STRA','STT','STV','SU','SUBK','SUPX','SUSQ','SVNT','SVR','SWKS','SWN','SWZ','SXCI','SY','SYBT','SYK','SYMC','SYMX','SYNA','SYNT','SYT','SYUT','TAC','TAL','TASR','TBSI','TC','TCK','TCL','TCLP','TCO','TD','TDC','TDF','TDG','TDW','TECH','TEI','TESO','TEVA','TFSL','TGB','TGH','TGP','THFF','THI','THOR','THRX','TIBX','TII','TIP','TIVO','TKC','TKLC','TLEO','TLK','TLL','TLM','TLP','TLT','TMO','TMP','TMRK','TNDM','TNH','TNK','TNP','TOMO','TOWN','TPL','TR','TRAD','TRAK','TRC','TRCA','TRI','TRLG','TRMB','TRMD','TROW','TRP','TRST','TS','TSL','TSM','TSRA','TSS','TTES','TTGT','TV','TWTI','TXCO','TXN','TY','TYG','TYL','TYPE','TZIX','UA','UB','UBA','UBB','UBSI','UDR','UEPS','UHT','ULTI','UMBF','UMC','UNP','UNT','UPL','URBN','USA','USB','USO','UST','UTEK','UTF','UTG','UTHR','UVSP','V','VALU','VAR','VAW','VB','VBK','VBR','VCO','VCP','VDC','VDE','VDSI','VFH','VGK','VGM','VGT','VHT','VICR','VIG','VIP','VISN','VIT','VITL','VIVO','VKI','VKQ','VLCCF','VLCM','VLNC','VLTR','VLY','VMC','VMO','VMW','VNO','VNQ','VNUS','VO','VOCS','VOD','VOLC','VPFG','VPHM','VPL','VPRT','VPU','VPV','VQ','VRSN','VRTX','VRUS','VSEA','VTI','VTR','VTV','VUG','VV','VVR','VVUS','VWO','VXF','WABC','WASH','WAT','WAUW','WAVE','WBMD','WBSN','WCN','WCRX','WDR','WES','WFC','WFR','WFSL','WFT','WGOV','WGW','WHG','WHQ','WIA','WIND','WIT','WIW','WL','WLL','WLT','WMGI','WMS','WPC','WPZ','WRE','WRES','WRI','WSC','WTI','WTR','WU','WWE','WWY','WX','WXS','WYE','WYNN','XCO','XEC','XHB','XLB','XLE','XLF','XLG','XLI','XLK','XLNX','XLP','XLTC','XLU','XLV','XLY','XME','XMSR','XNPT','XRAY','XTO','XXIA','YGE','YHOO','YSI','ZBRA','ZF','ZGEN','ZMH','ZOLT','ZTR');
-  //$symbols = array('aapl', 'UYG', 'SBUX', 'CROX');
-  
+  //$symbols = array('A','AAPL','AAUK','AAV','ABAX','ABB','ABCO','ABI','ABII','ABMD','ABT','ABV','ABX','ACAP','ACAS','ACC','ACG','ACI','ACL','ACOR','ACUR','ADBE','ADI','ADP','ADPT','ADS','ADSK','ADTN','ADVS','ADX','AEM','AFB','AFFY','AGG','AGN','AGU','AIA','AINV','AIXG','AKAM','AKR','AKRX','ALD','ALGN','ALKS','ALNY','ALOG','ALTR','ALX','ALXN','AMAG','AMAT','AMB','AMCC','AMCN','AME','AMED','AMG','AMGN','AMLN','AMMD','AMRI','AMSC','AMT','AMTD','AMX','ANAD','ANGO','ANH','ANR','ANSS','ANST','AOB','APA','APC','APEI','APF','APH','APOL','APPX','APWR','ARA','ARAY','ARB','ARBA','ARCC','ARD','ARE','AREX','ARMH','ARNA','ARRY','ARST','ARTC','ARTG','ARUN','ASA','ASEI','ASIA','ASR','ATB','ATE','ATF','ATHN','ATHR','ATMI','ATN','ATNI','ATVI','ATW','AU','AUXL','AUY','AVAV','AVB','AVK','AWC','AWF','AXYS','AYE','AZK','AZN','BABY','BANF','BAP','BARE','BAX','BBBB','BBD','BBEP','BBG','BBL','BCA','BCF','BCH','BCPC','BCR','BDE','BDV','BDX','BEAT','BEN','BEXP','BF-B','BFIN','BFK','BFS','BGCP','BGR','BHI','BHK','BHP','BIDU','BIIB','BIV','BK','BKCC','BKE','BKF','BKMU','BKT','BLE','BLK','BLKB','BLUD','BLW','BMC','BMI','BMR','BMRN','BMY','BNA','BNCL','BNI','BNS','BNT','BOE','BOH','BOKF','BPL','BPO','BPT','BRCD','BRCM','BRE','BRKL','BRKR','BRL','BRM','BRO','BRY','BSX','BTE','BTI','BTO','BTU','BUCY','BUD','BUSE','BVN','BWP','BX','BXP','BXS','BYM','BZF','BZP','CA','CACC','CAEI','CAM','CAP','CASS','CAVM','CBSH','CBST','CBU','CCBG','CCI','CCJ','CCL','CCMP','CCOI','CCU','CDE','CDR','CEDC','CEE','CEF','CELG','CEO','CEP','CEPH','CERN','CET','CETV','CF','CFFN','CFR','CFX','CGNX','CHCO','CHFC','CHH','CHI','CHK','CHKP','CHL','CHN','CHNR','CHT','CHTT','CHY','CIB','CIEN','CIG','CISG','CKXE','CL','CLB','CLDA','CLF','CLI','CLNE','CLP','CLR','CLWR','CME','CMED','CMG','CML','CMP','CMTL','CMZ','CNET','CNI','CNQ','CNQR','CNS','CNX','COG','COGT','COH','COMV','COV','CP','CPE','CPHD','CPLA','CPLP','CPRT','CPS','CPST','CPT','CPTS','CPWR','CRA','CREE','CRESY','CRK','CRL','CRM','CRME','CRO','CRR','CRT','CRXL','CRY','CRZO','CSCO','CSGP','CSQ','CSR','CSWC','CSX','CT','CTBI','CTCM','CTCT','CTRP','CTSH','CTXS','CUZ','CVA','CVBF','CVD','CVLT','CVTX','CWEI','CXG','CXO','CXW','CY','CYB','CYBS','CYBX','CYN','CYPB','DAC','DASTY','DBC','DBV','DCOM','DCS','DCT','DDR','DDUP','DECK','DEI','DEL','DEO','DES','DFS','DFT','DGIT','DHR','DHT','DHX','DIA','DIOD','DISCA','DLB','DLR','DM','DMLP','DMRC','DNA','DNB','DNDN','DNEX','DNN','DNP','DNR','DO','DOX','DPTR','DR','DRE','DRIV','DRQ','DRRX','DRYS','DSCP','DSM','DSU','DSX','DTSI','DV','DVN','DVY','DWA','EAC','EAD','EBAY','ECA','ECLP','ECOL','EDR','EDU','EEM','EFA','EFG','EFR','EFT','EFV','EFX','EGLE','EGN','EGO','EGOV','EGP','EGY','EHI','EHTH','EIG','EIM','EJ','ELG','ELN','ELON','ELOS','ELRC','ELS','EMF','ENDP','ENER','ENL','ENOC','ENP','ENSI','ENZ','EOC','EOG','EOI','EOS','EP','EPB','EPIQ','EPP','EPR','EQIX','EQR','EQT','EQY','ERC','ERES','ERF','ERTS','ESD','ESE','ESEA','ESGR','ESI','ESLR','ESS','ESV','ETB','ETG','ETO','ETV','ETW','EURX','EV','EVEP','EVG','EVT','EVTC','EVV','EVVV','EW','EWA','EWC','EWD','EWG','EWH','EWJ','EWL','EWM','EWP','EWQ','EWS','EWT','EWU','EWW','EWY','EWZ','EXAC','EXAR','EXBD','EXC','EXEL','EXLS','EXM','EXPE','EXPO','EXR','EZA','EZCH','EZM','EZU','FARO','FAST','FAX','FCBC','FCE-A','FCEL','FCF','FCL','FCN','FCT','FDG','FDRY','FDS','FEED','FEZ','FFC','FFIN','FFIV','FGF','FIF','FIG','FII','FLIR','FLY','FMBI','FMCN','FMER','FMO','FNB','FNFG','FNX','FOLD','FOR','FORM','FORR','FPO','FR','FRO','FRT','FRX','FSIN','FSLR','FSP','FST','FTEK','FTK','FWRD','FXI','G','GA','GAB','GAF','GAM','GASS','GBCI','GBL','GBN','GCS','GDP','GDV','GDX','GENZ','GERN','GEX','GF','GFA','GFI','GG','GGG','GGN','GGP','GHDX','GHL','GHM','GIGM','GIL','GILD','GIM','GIVN','GLAD','GLD','GLF','GLG','GLNG','GLQ','GLRE','GLS','GLW','GMCR','GMKT','GML','GMR','GMXR','GNK','GNTX','GOLD','GOOG','GPN','GPOR','GPRO','GRC','GRI','GRMN','GRS','GSG','GSH','GSK','GSOL','GSS','GST','GSX','GTE','GTI','GTXI','GTY','GU','GWR','GXDX','GYI','HAE','HAL','HALO','HANS','HBC','HBHC','HCBK','HCN','HCP','HDB','HEP','HERO','HEV','HGSI','HGT','HI','HIL','HIO','HITT','HIW','HIX','HK','HL','HLIT','HLTH','HME','HMIN','HMSY','HMY','HNBC','HNR','HNSN','HOLX','HOMB','HOO','HOS','HP','HPF','HPI','HPS','HQH','HR','HSVLY','HTD','HTH','HTLD','HTS','HTV','HTX','HXM','HYT','HYV','IAG','IART','IAU','IBB','IBKC','IBN','IBOC','ICE','ICF','ICGE','ICLR','ICON','ID','IDC','IDCC','IDIX','IDRA','IDTI','IDU','IDXX','IEF','IEP','IEV','IEX','IEZ','IFN','IGD','IGE','IGM','IGR','IGT','IGV','IHG','IHS','IIF','IIT','IIVI','IJH','IJJ','IJK','IJR','IJS','IJT','ILF','ILMN','IMA','IMAX','IMCL','INCY','INDB','INFA','INFN','INFY','INTC','INTU','INWK','IO','IOO','IPCR','IPGP','IPI','IRC','IRETS','IRIS','ISBC','ISCA','ISIL','ISIS','ISRG','ISYS','ITA','ITC','ITMN','ITU','IVAN','IVE','IVGN','IVV','IVW','IVZ','IWA','IWB','IWD','IWF','IWM','IWN','IWO','IWOV','IWP','IWR','IWS','IWV','IWW','IXC','IXJ','IXN','IXP','IYE','IYF','IYH','IYJ','IYK','IYM','IYR','IYT','IYW','IYY','IYZ','JASO','JCOM','JFR','JKE','JKH','JKHY','JLA','JNJ','JNPR','JNS','JOBS','JOE','JOYG','JPC','JPS','JPZ','JQC','JRJC','JRS','JSN','JTP','KBE','KDN','KF','KFN','KGC','KGS','KIM','KLAC','KNSY','KNX','KNXA','KO','KRC','KRG','KRNY','KSU','KTF','KWK','KYE','KYN','LAMR','LDK','LDR','LEO','LFC','LFL','LFT','LGCY','LGND','LIHR','LLNW','LLTC','LLY','LMDIA','LMNX','LNN','LO','LOGI','LOOP','LQD','LRN','LRY','LTC','LUFK','LUK','LULU','LVS','MA','MAA','MAC','MASI','MATK','MATW','MAV','MBT','MCD','MCF','MCHP','MCHX','MCO','MCR','MCRL','MCRS','MDAS','MDCO','MDR','MDRX','MDT','ME','MEDX','MEE','MELI','MFA','MFE','MFG','MFL','MGRC','MGU','MHN','MICC','MIL','MIN','MINI','MIR','MLM','MLNX','MMSI','MMT','MNT','MNTA','MO','MON','MORN','MOS','MPEL','MPW','MPWR','MQY','MR','MRB','MRH','MRK','MRVL','MRX','MSB','MSCC','MSCS','MSF','MSFT','MSTR','MTB','MTL','MTU','MUC','MUI','MVC','MVF','MVL','MVSN','MWE','MXB','MXF','MXI','MXT','MYD','MYGN','MYI','MYN','N','NAC','NAD','NAL','NAT','NATI','NBG','NBL','NBR','NBTB','NCTY','NCV','NCZ','NDAQ','NDSN','NE','NEM','NEOG','NETC','NETL','NFBK','NFJ','NFX','NG','NGPC','NGS','NHI','NHP','NICE','NIHD','NIO','NL','NLY','NMA','NMO','NMR','NMX','NMZ','NNDS','NNN','NOG','NOV','NOVL','NPBC','NPD','NPI','NPM','NPP','NPT','NPX','NQI','NQM','NQS','NQU','NRP','NRT','NSC','NSH','NSM','NSR','NTAP','NTCT','NTES','NTLS','NTRS','NUAN','NUV','NUVA','NVG','NVO','NVS','NVT','NWSB','NXY','NXZ','NYB','NYX','NZ','NZF','NZH','O','OEF','OEH','OFC','OHI','OII','OMAB','OMCL','OMRI','OMTR','ONB','ONNN','OPK','ORA','ORCL','ORIT','OSIP','OSIR','OTEX','OXPS','OXY','OZM','PAAS','PAC','PAL','PANL','PAR','PAX','PAYX','PBCT','PBF','PBNY','PBR','PBT','PBW','PCK','PCL','PCLN','PCN','PCP','PCS','PCX','PDC','PDE','PDLI','PDS','PDT','PDX','PEGA','PEO','PEP','PETD','PFE','PFN','PFP','PFS','PFWD','PG','PGH','PGJ','PGNX','PHD','PHI','PHK','PHO','PHT','PHX','PICO','PID','PIM','PKE','PKY','PLLL','PMCS','PMF','PMFG','PML','PMM','PMO','PMTC','PMX','PNC','PNFP','PODD','POT','POWI','POZN','PPA','PPDI','PPL','PPO','PPR','PPS','PPT','PQ','PRA','PRAA','PRF','PRFS','PRGS','PRK','PRO','PRSP','PSA','PSB','PSE','PSEC','PSEM','PST','PSY','PTEC','PTEN','PTIE','PTY','PVA','PVG','PVR','PVTB','PWB','PWC','PWE','PWJ','PWRD','PX','PXD','PXJ','PXP','PZN','QCOM','QCOR','QDEL','QELP','QGEN','QID','QLGC','QSFT','QSII','RAME','RATE','RAVN','RBA','RBCAA','RBCN','RBN','RCI','RCS','RDC','RDY','REG','REGN','RES','REXX','RGLD','RHT','RIG','RIGL','RIMM','RIO','RLF','RLRN','RMBS','RMD','RMG','RNOW','RNP','ROLL','ROMA','ROP','ROS','ROSE','ROY','RPF','RPT','RQI','RRC','RSP','RTIX','RTP','RTU','RUK','RVBD','RVT','RWR','RWX','RY','RYAAY','RYN','RZ','SAN','SAP','SAY','SB','SBAC','SBG','SBIB','SBLK','SBNY','SBR','SCBT','SCC','SCD','SCHW','SCMP','SCMR','SCOR','SCR','SD','SDS','SDTH','SDXC','SE','SEIC','SEP','SFI','SFL','SFNC','SFSF','SFY','SGEN','SGLP','SGMO','SGMS','SGP','SGY','SHEN','SHPGY','SHY','SIAL','SID','SIMO','SINA','SIRI','SIRO','SIVB','SJH','SJR','SJT','SJW','SKIL','SKT','SLAB','SLB','SLG','SLH','SLV','SLW','SM','SMBL','SMTC','SNCR','SNDA','SNG','SNH','SNHY','SNI','SNN','SNPS','SNY','SOHU','SOL','SONE','SONO','SONS','SOR','SPG','SPIL','SPN','SPNC','SPSS','SPWR','SQM','SQNM','SRCL','SRDX','SRO','SRVY','SSL','SSS','SSW','SSYS','STAR','STBA','STD','STEC','STEL','STJ','STOSY','STP','STR','STRA','STT','STV','SU','SUBK','SUPX','SUSQ','SVNT','SVR','SWKS','SWN','SWZ','SXCI','SY','SYBT','SYK','SYMC','SYMX','SYNA','SYNT','SYT','SYUT','TAC','TAL','TASR','TBSI','TC','TCK','TCL','TCLP','TCO','TD','TDC','TDF','TDG','TDW','TECH','TEI','TESO','TEVA','TFSL','TGB','TGH','TGP','THFF','THI','THOR','THRX','TIBX','TII','TIP','TIVO','TKC','TKLC','TLEO','TLK','TLL','TLM','TLP','TLT','TMO','TMP','TMRK','TNDM','TNH','TNK','TNP','TOMO','TOWN','TPL','TR','TRAD','TRAK','TRC','TRCA','TRI','TRLG','TRMB','TRMD','TROW','TRP','TRST','TS','TSL','TSM','TSRA','TSS','TTES','TTGT','TV','TWTI','TXCO','TXN','TY','TYG','TYL','TYPE','TZIX','UA','UB','UBA','UBB','UBSI','UDR','UEPS','UHT','ULTI','UMBF','UMC','UNP','UNT','UPL','URBN','USA','USB','USO','UST','UTEK','UTF','UTG','UTHR','UVSP','V','VALU','VAR','VAW','VB','VBK','VBR','VCO','VCP','VDC','VDE','VDSI','VFH','VGK','VGM','VGT','VHT','VICR','VIG','VIP','VISN','VIT','VITL','VIVO','VKI','VKQ','VLCCF','VLCM','VLNC','VLTR','VLY','VMC','VMO','VMW','VNO','VNQ','VNUS','VO','VOCS','VOD','VOLC','VPFG','VPHM','VPL','VPRT','VPU','VPV','VQ','VRSN','VRTX','VRUS','VSEA','VTI','VTR','VTV','VUG','VV','VVR','VVUS','VWO','VXF','WABC','WASH','WAT','WAUW','WAVE','WBMD','WBSN','WCN','WCRX','WDR','WES','WFC','WFR','WFSL','WFT','WGOV','WGW','WHG','WHQ','WIA','WIND','WIT','WIW','WL','WLL','WLT','WMGI','WMS','WPC','WPZ','WRE','WRES','WRI','WSC','WTI','WTR','WU','WWE','WWY','WX','WXS','WYE','WYNN','XCO','XEC','XHB','XLB','XLE','XLF','XLG','XLI','XLK','XLNX','XLP','XLTC','XLU','XLV','XLY','XME','XMSR','XNPT','XRAY','XTO','XXIA','YGE','YHOO','YSI','ZBRA','ZF','ZGEN','ZMH','ZOLT','ZTR');
+  $symbols = array('aapl', 'UYG', 'SBUX', 'CROX');
+
   $stocks = stockapi_fetch($symbols);
   foreach ($stocks as $key => $stock) {
     stockapi_save(_stockapi_to_object($stock));
