public function ul($iconsOrItems, $listItems = array())
    {
        $has_string_keys = function (array $array) {
            return count(array_filter(array_keys($array), 'is_string')) > 0;
        };

        if (is_string($iconsOrItems) === false && is_array($iconsOrItems) === false) {
            throw new IncompleteListException(
                'The list must be started with a default icon or an array with explicitly defined icons.'
            );
        }

        if (is_array($iconsOrItems) && $has_string_keys($iconsOrItems) === false) {
            throw new IncompleteListException(
                'The list array must have with explicitly defined icons since no default was given.'
            );
        }

        if (is_string($iconsOrItems)) {
            return new FontAwesomeList($iconsOrItems, $listItems);
        } else {
            return new FontAwesomeList('', $iconsOrItems);
        }
    }