public function remove($key)
    {
        if (is_null($key)) {
            throw new InvalidArgumentException("Can't add NULL {$this->name}.");
        }

        if (!is_null($id = $this->search($key))) {
            unset($this->items[$id]);
            return true;
        }

        return false;
    }