public function distinct()
    {
        $container = clone $this;
        $newDataPlaceHolder = [];
        
        foreach ($this->getDataPlaceHolder() as $key => $value) {
            
            $found = false;
            
            foreach ($newDataPlaceHolder as $newValue) {
                
                if (gettype($value) === 'object' && $value instanceof Comparable && $value->equals($newValue)) {
                    $found = true;
                    break;
                } elseif (gettype($newValue) === 'object' && $newValue instanceof Comparable && $newValue->equals($value)) {
                    $found = true;
                    break;
                } else if ($value === $newValue) {
                    $found = true;
                    break;
                }
            }
            
            if ($found === false) {
                if (is_string($key) === true) {
                    $newDataPlaceHolder[$key] = $value;
                } else {
                    $newDataPlaceHolder[] = $value;
                }
            }
        }
        
        $container->setDataPlaceHolder($newDataPlaceHolder);
        
        return $container;
    }