private function _sort($sort_by)
 {
     if (count($this->container) < 2) {
         return;
     }
     $left = new self();
     $right = new self();
     $pivot = array_shift($this->container);
     foreach ($this->container as $k => $element) {
         if ($element->compare($pivot, $sort_by) < 0) {
             $left->container[] = $element;
         } else {
             $right->container[] = $element;
         }
     }
     $left->_sort($sort_by);
     $right->_sort($sort_by);
     $this->container = array_merge($left->container, array($pivot), $right->container);
 }