internal Sentence Generate(String sentenceTemplate) { IEnumerable <Tag> tags = _tagExtractor.ExtractTags(sentenceTemplate); List <TagWithWord> tagsWithRandomWords = _wordSelectorFactory.Create() .CreateTagsWithWords(tags).ToList(); return (new Sentence( tagsWithWords: tagsWithRandomWords, text: RemoveHashesFromInsideHashtags( ReplaceTagsWithRandomWords( sentenceTemplate, tagsWithRandomWords)))); }