diff -u b/sampler.api.inc b/sampler.api.inc
--- b/sampler.api.inc
+++ b/sampler.api.inc
@@ -158,6 +158,7 @@
 
   if (!isset($schema) || $reset) {
     $schema = array();
+    sampler_load_sampler();
     $object = new Sampler();
 
     $metrics_schemas = db_query('SELECT module, metric, data_type, storage_plugin FROM {sampler_metric_state}');
@@ -325,6 +326,7 @@
 function sampler_process_all_metrics($options = array()) {
   $metrics = sampler_load_metrics();
 
+  sampler_load_sampler();
   $object = new Sampler();
 
   $results = array();
diff -u b/sampler.install b/sampler.install
--- b/sampler.install
+++ b/sampler.install
@@ -6,14 +6,6 @@
  */
 
 /**
- * Implements hook_install().
- */
-function sampler_install() {
-  $t = get_t();
-  drupal_set_message($t('Sampler API has been installed.'));
-}
-
-/**
  * Implements hook_schema().
  */
 function sampler_schema() {
diff -u b/sampler.module b/sampler.module
--- b/sampler.module
+++ b/sampler.module
@@ -31,8 +31,7 @@
  * Loader for the Sampler class and essential API functions.
  */
 function sampler_load_sampler() {
-  // Conditional load of our own files this way as they are relative to this file.
-  include_once dirname(__FILE__) . '/sampler.api.inc';
+  module_load_include('inc', 'sampler', 'sampler.api');
 }
 
 /**
diff -u b/sampler_example/metrics/SamplerExampleMetricNodeBodyContainsPhrase.class.php b/sampler_example/metrics/SamplerExampleMetricNodeBodyContainsPhrase.class.php
--- b/sampler_example/metrics/SamplerExampleMetricNodeBodyContainsPhrase.class.php
+++ b/sampler_example/metrics/SamplerExampleMetricNodeBodyContainsPhrase.class.php
@@ -25,6 +25,9 @@
       $phrase = '%module%';
     }
 
+    // The 'all nodes' object type only ever has one object ID, so we don't need
+    // to worry about anything passed in object_ids -- just return the single metric
+    // value asked for.
     $select = db_select('node', 'n');
       $select->innerJoin('node_revisions', 'nr', 'n.vid = nr.vid');
       $select->addExpression('COUNT(n.nid)', 'count');
diff -u b/sampler_example/metrics/SamplerExampleMetricVocabularyTermsOnNodes.class.php b/sampler_example/metrics/SamplerExampleMetricVocabularyTermsOnNodes.class.php
--- b/sampler_example/metrics/SamplerExampleMetricVocabularyTermsOnNodes.class.php
+++ b/sampler_example/metrics/SamplerExampleMetricVocabularyTermsOnNodes.class.php
@@ -29,8 +29,6 @@
         $this->currentSample->values[$vid]['nodes'] = 0;
       }
 
-      // This call is not conditional on the taxonomy module existing but
-      // trackObjectIDs() function call is? Error? @error
       $select = db_select('taxonomy_term_data', 'td');
         $select->innerJoin('taxonomy_term_node', 'tn', 'td.tid = tn.tid');
         $select->innerJoin('node', 'n', 'tn.nid = n.nid');
diff -u b/sampler_example/sampler_example.install b/sampler_example/sampler_example.install
--- b/sampler_example/sampler_example.install
+++ b/sampler_example/sampler_example.install
@@ -9,9 +9,16 @@
  * Implements hook_install().
  */
 function sampler_example_install() {
-  // Dummy function to show Sampler API example module installed.
-  $t = get_t();
-  drupal_set_message($t('Sampler API example installed.'));
+  // Dummy function to allow for testing the schema management functions in
+  // sampler.
+}
+
+/**
+ * Implements hook_uninstall().
+ */
+function sampler_example_uninstall() {
+  // Dummy function to allow for testing the schema management functions in
+  // sampler.
 }
 
 /**
