public function take($amount, $in_place = false)
    {
        if (!is_int($amount)) {
            throw new \InvalidArgumentException('ItemList::take() expects an integer argument.');
        }

        $taken = array_slice($this->list, 0, $amount);

        if ($in_place) {
            $this->list = $taken;

            return $this;
        }

        return new ItemList($taken);
    }