General rework of current MTC.py code

- Separating the code into multiple smaller, more manageable classes

- Shorter functions

- Unittests (TDD)