protected function parseChoices($objs)
    {
        if (!is_array($objs) && !$objs instanceof Traversable) {
            throw new InvalidArgumentException('Must be iterable');
        }

        $parsed = [];
        foreach ($objs as $choice) {
            $choice = $this->parseChoice($choice);
            if ($choice !== null) {
                $choiceIdent = $choice['value'];
                $parsed[$choiceIdent] = $choice;
            }
        }

        return $parsed;
    }