*/
     virtual bool zero() const = 0;
 
-    //need to document
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const = 0;
 
     /**
      */
     virtual void display(std::ostream &stream) const;
 
-    //need to document
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const = 0;
 };
 
      */
     virtual void display(std::ostream &stream) const;
 
-    //need to document
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const = 0;
 };
 
      * @return 1.
      */
     virtual size_t size() const { return 1; }
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return bin_t::binned; }
 
     /**
      * @return The size of the vector.
      */
     virtual size_t size() const { return bin.size(); }
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return bin_t::binned; }
     /**
      * Reset stat value to default
      * @return 1.
      */
     virtual size_t size() const { return 1; }
+    /**
+     * Return true if stat is binned.
+     *@return false since Proxies aren't printed/binned
+     */
     virtual bool binned() const { return false; }
     /**
      * This stat has no state.  Nothing to reset
 
     virtual size_t size() const { return bin.size(); }
     virtual bool zero() const { return data(0)->value(params) == 0.0; }
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return bin_t::binned; }
 
     virtual void
         assert (index >= 0 && index < size());
         return ScalarProxy<T, Storage, Bin>(*bin, *params, offset + index);
     }
+    /**
+     * Return true if stat is binned.
+     *@return false since Proxies aren't printed/binned
+     */
     virtual bool binned() const { return false; }
 
     /**
         data()->display(stream, myname(), mydesc(), myprecision(), myflags(),
                         params);
     }
-
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return bin_t::binned; }
     /**
      * Reset stat value to default
     virtual size_t size() const { return bin.size(); }
     virtual bool zero() const { return false; }
     virtual void display(std::ostream &stream) const;
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return bin_t::binned; }
     /**
      * Reset stat value to default
         data()->display(stream, name.str(), desc.str(),
                         cstat->myprecision(), cstat->myflags(), cstat->params);
     }
-
+    /**
+     * Return true if stat is binned.
+     *@return false since Proxies are not binned/printed.
+     */
     virtual bool binned() const { return false; }
     /**
      * Proxy has no state.  Nothing to reset.
      * @return The total of the result vector.
      */
     virtual result_t total() const = 0;
-
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const = 0;
 };
 
     virtual result_t total() const { return stat.val(); };
 
     virtual size_t size() const { return 1; }
-
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return stat.binned(); }
 };
 
     virtual result_t total() const { return proxy.val(); };
 
     virtual size_t size() const { return 1; }
-
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return proxy.binned(); }
 };
 
     virtual result_t total() const { return stat.total(); };
 
     virtual size_t size() const { return stat.size(); }
-
+    /**
+     * Return true if stat is binned.
+     *@return True is stat is binned.
+     */
     virtual bool binned() const { return stat.binned(); }
 };
 
     virtual result_t total() const { return data[0]; };
 
     virtual size_t size() const { return 1; }
+    /**
+     * Return true if stat is binned.
+     *@return False since constants aren't binned.
+     */
     virtual bool binned() const { return false; }
 };
 
     virtual result_t total() const { return (result_t)functor(); };
 
     virtual size_t size() const { return 1; }
+    /**
+     * Return true if stat is binned.
+     *@return False since Functors aren't binned
+     */
     virtual bool binned() const { return false; }
 };
 
     virtual result_t total() const { return (result_t)scalar; };
 
     virtual size_t size() const { return 1; }
+    /**
+     * Return true if stat is binned.
+     *@return False since Scalar's aren't binned
+     */
     virtual bool binned() const { return false; }
 };
 
     }
 
     virtual size_t size() const { return l->size(); }
+    /**
+     * Return true if child of node is binned.
+     *@return True if child of node is binned.
+     */
     virtual bool binned() const { return l->binned(); }
 };
 
             return ls;
         }
     }
-
+    /**
+     * Return true if any children of node are binned
+     *@return True if either child of node is binned.
+     */
     virtual bool binned() const { return (l->binned() || r->binned()); }
 };
 
     }
 
     virtual size_t size() const { return 1; }
+    /**
+     * Return true if child of node is binned.
+     *@return True if child of node is binned.
+     */
     virtual bool binned() const { return l->binned(); }
 };
 
         else
             return root->size();
     }
-
+    /**
+     * Return true if Formula is binned. i.e. any of its children nodes are binned
+     *@return True if Formula is binned.
+     */
     virtual bool binned() const { return root->binned(); }
 
     /**