#5: add CorpusFactory