1. Add untested direct modex related changes.
2. Minor refactoring
3. Introduce data generations