Fixed NPE in EglTemplateFactoryModuleAdapter.
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactoryModuleAdapter.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactoryModuleAdapter.java
index 4db7d72..1e9dd04 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactoryModuleAdapter.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactoryModuleAdapter.java
@@ -140,7 +140,7 @@
 
 	@Override
 	public IEglContext getContext() {
-		return current.getModule().getContext();
+		return factory.getContext();//current.getModule().getContext();
 	}
 
 	@Override
diff --git a/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/concurrent/experimental/EvlModuleParallelRandom.java b/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/concurrent/experimental/EvlModuleParallelRandom.java
index 8693375..ea5f07d 100644
--- a/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/concurrent/experimental/EvlModuleParallelRandom.java
+++ b/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/concurrent/experimental/EvlModuleParallelRandom.java
@@ -38,7 +38,7 @@
 		IEvlContextParallel context = getContext();
 		
 		List<ConstraintAtom> originalJobs = profileExecutionStage("get initial jobs",
-			() -> ConstraintAtom.getConstraintJobs(context)
+			() -> ConstraintAtom.getConstraintJobs(this)
 		);
 
 		profileExecutionStage("shuffle jobs", () -> Collections.shuffle(originalJobs));
diff --git a/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintAtom.java b/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintAtom.java
index f3eb8a3..8ff0e2f 100644
--- a/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintAtom.java
+++ b/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintAtom.java
@@ -13,6 +13,7 @@
 import java.util.Collection;
 import java.util.Optional;
 import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
+import org.eclipse.epsilon.evl.IEvlModule;
 import org.eclipse.epsilon.evl.dom.Constraint;
 import org.eclipse.epsilon.evl.dom.ConstraintContext;
 import org.eclipse.epsilon.evl.execute.UnsatisfiedConstraint;
@@ -38,10 +39,10 @@
 		return unit.execute(element, context);
 	}
 	
-	public static ArrayList<ConstraintAtom> getConstraintJobs(IEvlContext context) throws EolRuntimeException {
+	public static ArrayList<ConstraintAtom> getConstraintJobs(IEvlModule module) throws EolRuntimeException {
 		ArrayList<ConstraintAtom> atoms = new ArrayList<>();
-		
-		for (ConstraintContext constraintContext : context.getModule().getConstraintContexts()) {
+		IEvlContext context = module.getContext();
+		for (ConstraintContext constraintContext : module.getConstraintContexts()) {
 			Collection<?> allOfKind = constraintContext.getAllOfSourceKind(context);
 			for (Object element : allOfKind) {
 				if (constraintContext.shouldBeChecked(element, context)) {
diff --git a/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintContextAtom.java b/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintContextAtom.java
index 2196cb7..6424a67 100644
--- a/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintContextAtom.java
+++ b/plugins/org.eclipse.epsilon.evl.engine/src/org/eclipse/epsilon/evl/execute/concurrent/ConstraintContextAtom.java
@@ -13,6 +13,7 @@
 import java.util.Collection;
 import java.util.Collections;
 import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
+import org.eclipse.epsilon.evl.IEvlModule;
 import org.eclipse.epsilon.evl.dom.Constraint;
 import org.eclipse.epsilon.evl.dom.ConstraintContext;
 import org.eclipse.epsilon.evl.execute.UnsatisfiedConstraint;
@@ -55,11 +56,11 @@
 		else return Collections.emptyList();
 	}
 	
-	public static ArrayList<ConstraintContextAtom> getContextJobs(IEvlContext context) throws EolRuntimeException {
+	public static ArrayList<ConstraintContextAtom> getContextJobs(IEvlModule module) throws EolRuntimeException {
 		ArrayList<ConstraintContextAtom> atoms = new ArrayList<>();
 		
-		for (ConstraintContext constraintContext : context.getModule().getConstraintContexts()) {
-			Collection<?> allOfKind = constraintContext.getAllOfSourceKind(context);
+		for (ConstraintContext constraintContext : module.getConstraintContexts()) {
+			Collection<?> allOfKind = constraintContext.getAllOfSourceKind(module.getContext());
 			atoms.ensureCapacity(atoms.size()+allOfKind.size());
 			for (Object element : allOfKind) {
 				atoms.add(new ConstraintContextAtom(constraintContext, element));