protected function addEmbeddedEntityList(
        EntityInterface $entity,
        EmbeddedEntityListAttribute $attribute,
        array $options = array()
    ) {
        $options_clone = $options;
        $entity_collection = new EntityList();
        $embedded_type_map = $attribute->getEmbeddedEntityTypeMap();

        $min_count = $attribute->getOption('min_count', 0);
        $max_count = $attribute->getOption('max_count', 3);
        $inline_mode = $attribute->getOption('inline_mode', false);

        if (true === $inline_mode) {
            $number_of_new_embed_entries = 1;
        } else {
            $number_of_new_embed_entries = $this->faker->numberBetween($min_count, $max_count);
        }

        // add new entities to collection for embed types
        for ($i = 0; $i < $number_of_new_embed_entries; $i++) {
            $embed_type = $this->faker->randomElement($embedded_type_map->getValues());
            $new_entity = $this->createFakeEntity($embed_type, $options_clone, $entity);
            $entity_collection->addItem($new_entity);
        }

        $this->setValue($entity, $attribute, $entity_collection, $options);
    }