public static void execute(GenejectorProblem problem)
	{
		if (instanceRole == InstanceRole.PROJECT || instanceRole == InstanceRole.RISEN)
		{
			if (executeIsRunning)
			{
				return;	// TODO: Consider throwing an exception instead once we are able to propagate them properly to the realm instance
			}

			try
			{
				executeIsRunning = true;
				problem.resetState();
				executeMethod.invoke(genejectedMortal, problem);
				executeIsRunning = false;
			}
			catch (IllegalAccessException ex)
			{
				throw new ReflectionException(ex);
			}
			catch (InvocationTargetException ex)
			{
				if (instanceRole == InstanceRole.RISEN)
				{
					// We don't like exceptions when evolving genetic code. Swallow it and override returned score with -1
					geneticExceptionThrown = true;
				}
				else
				{
					throw new GenejectedExecutionException(ex.getCause());
				}
			}
		}
		else
		{
			throw new GenejectorIllegalStateException("Method called from illegal instance of type " + instanceRole);
		}
	}