public Result <ICloudPainter> Create()
        {
            var layouter    = makeLayouter(new Point(settings.CenterX, settings.CenterY));
            var filterFuncs = CreateFuncsFromFilters(filters);

            return(Result
                   .Of(() => textReader.ReadLines(settings.WordsSource), new List <string>())
                   .Then(x => UseCaseSettings(x, settings))
                   .Then(filterFuncs)
                   .Then(x => parser.GetWordsFrequency(x, settings.Language))
                   .Then(x => new CloudWithWordsPainter(imageHolder, settings, palette, layouter, x))
                   .Then(x => (ICloudPainter)x));
        }