diff --git a/mimic/text_generator_factory.py b/mimic/text_generator_factory.py
new file mode 100644
index 0000000..a68a814
--- /dev/null
+++ b/mimic/text_generator_factory.py
@@ -0,0 +1,23 @@
+"""text generator creator module."""
+from mimic.model.model import Model
+from mimic.model.markov_chain_model import MarkovChainModel
+from mimic.text_generator import TextGenerator
+
+
+class TextGeneratorFactory:
+    """
+    TextGeneratorFactory class.
+
+    Class that creates TextGenerators with the choice of a model for the user.
+    """
+
+    def __init__(self):
+        """Initialize a TextGenerator with the given model type."""
+
+    def create_markov_chain_text_generator(self):
+        """Create a TextGenerator using a markov chain model."""
+        return TextGenerator(MarkovChainModel())
+
+    def create_LTSM_text_generator(self):
+        """Create a TextGenerator using a LTSM model."""
+        raise NotImplementedError

diff --git a/mimic/tests/test_text_generator_factory.py b/mimic/tests/test_text_generator_factory.py
new file mode 100644
index 0000000..f45f0a2
--- /dev/null
+++ b/mimic/tests/test_text_generator_factory.py
@@ -0,0 +1,20 @@
+import unittest
+from mimic.text_generator import TextGenerator
+from mimic.text_generator_factory import TextGeneratorFactory
+
+
+class TestTextGeneratorFactory(unittest.TestCase):
+
+    def setUp(self):
+        self.textGeneratorFactory = TextGeneratorFactory()
+
+    def test_create_markov_chain_text_generator(self):
+        factory = self.textGeneratorFactory
+        testGenerator = factory.create_markov_chain_text_generator()
+        assert(isinstance(testGenerator, TextGenerator))
+
+    def test_create_LTSM_text_generator(self):
+        # factory = self.textGeneratorFactory
+        # testGenerator = factory.create_LTSM_text_generator()
+        # assert(isinstance(testGenerator, TextGenerator))
+        pass

Create Generator class and set up dependency injection
Create a core `Generator` class per our design and set up dependency injection to inject `Model`s (of course, these names can be changed if necessary). Writing some tests (e.g. with pytest) would also be nice.
mimic/tests/test_text_generator_factory.py::TestTextGeneratorFactory::test_create_LTSM_text_generator