Code Refactoring

Extract out "synthetic data" functionality as a separate module