def run(corpus_filename, counts_filename):
        CountsProcessor.corpus_file_to_counts_file(corpus_filename, counts_filename)

        RareProcessor(counts_filename, corpus_filename).write_corpus_file()
        ClassProcessor(counts_filename, corpus_filename).write_corpus_file()

        output_corpus_filename_rare = Processor.filename(corpus_filename, "rare")
        output_counts_filename_rare = Processor.filename(counts_filename, "rare")
        CountsProcessor.corpus_file_to_counts_file(output_corpus_filename_rare,
                                                   output_counts_filename_rare)

        output_corpus_filename_class = Processor.filename(corpus_filename, "class")
        output_counts_filename_class = Processor.filename(counts_filename, "class")
        CountsProcessor.corpus_file_to_counts_file(output_corpus_filename_class,
                                                   output_counts_filename_class)

        return output_counts_filename_rare, output_counts_filename_class