public function enqueue(Animal $animal)
 {
     $animal->setIndex($this->index++);
     if ($animal instanceof Dog) {
         $this->dogs->add($animal);
     } else {
         if ($animal instanceof Cat) {
             $this->cats->add($animal);
         } else {
             throw new InvalidArgumentException('Unknown animal type: ' + get_class($animal));
         }
     }
 }