Clean up warnings and dependencies.
diff --git a/pom.xml b/pom.xml
index 9b72c52..4fc2733 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,11 @@
 				<version>${log4j.version}</version>
 			</dependency>
 			<dependency>
+				<groupId>log4j</groupId>
+				<artifactId>log4j</artifactId>
+				<version>${log4j.version}</version>
+			</dependency>
+			<dependency>
 				<groupId>junit</groupId>
 				<artifactId>junit</artifactId>
 				<version>${junit.version}</version>
@@ -40,6 +45,26 @@
 				<artifactId>robundle</artifactId>
 				<version>0.3.1</version>
 			</dependency>
+			<dependency>
+				<groupId>uk.org.taverna.databundle</groupId>
+				<artifactId>databundle</artifactId>
+				<version>${taverna.databundle.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>uk.org.taverna.configuration</groupId>
+				<artifactId>taverna-app-configuration-api</artifactId>
+				<version>${taverna.configuration.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>uk.org.taverna.scufl2</groupId>
+				<artifactId>scufl2-api</artifactId>
+				<version>${scufl2.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.osgi</groupId>
+				<artifactId>org.osgi.compendium</artifactId>
+				<version>${osgi.core.version}</version>
+			</dependency>
 		</dependencies>
 	</dependencyManagement>
 	<repositories>
diff --git a/taverna-capability-api/pom.xml b/taverna-capability-api/pom.xml
index b895e17..a32cec2 100644
--- a/taverna-capability-api/pom.xml
+++ b/taverna-capability-api/pom.xml
@@ -19,7 +19,6 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 
 		<dependency>
diff --git a/taverna-capability-impl/pom.xml b/taverna-capability-impl/pom.xml
index 02ea9cd..00431f0 100644
--- a/taverna-capability-impl/pom.xml
+++ b/taverna-capability-impl/pom.xml
@@ -37,7 +37,6 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 
 		<dependency>
@@ -54,7 +53,6 @@
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-                        <version>${junit.version}</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
diff --git a/taverna-execution-api/pom.xml b/taverna-execution-api/pom.xml
index afabb91..ba7e453 100644
--- a/taverna-execution-api/pom.xml
+++ b/taverna-execution-api/pom.xml
@@ -25,23 +25,21 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>uk.org.taverna.databundle</groupId>
 			<artifactId>databundle</artifactId>
-			<version>${taverna.databundle.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>${junit.version}</version>
-			<scope>test</scope>
 		</dependency>
 		<dependency>
 			<groupId>org.purl.wf4ever.robundle</groupId>
 			<artifactId>robundle</artifactId>
 		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 	<repositories>
 		<repository>
diff --git a/taverna-execution-api/src/main/java/uk/org/taverna/platform/execution/api/ExecutionService.java b/taverna-execution-api/src/main/java/uk/org/taverna/platform/execution/api/ExecutionService.java
index 75955a3..2ae7067 100755
--- a/taverna-execution-api/src/main/java/uk/org/taverna/platform/execution/api/ExecutionService.java
+++ b/taverna-execution-api/src/main/java/uk/org/taverna/platform/execution/api/ExecutionService.java
@@ -64,7 +64,7 @@
 	 *
 	 * @return the ExecutionEnvironments available for this ExecutionService
 	 */
-	public Set<ExecutionEnvironment> getExecutionEnvivonments();
+	public Set<ExecutionEnvironment> getExecutionEnvironments();
 
 	/**
 	 * Creates a workflow execution and returns its ID.
diff --git a/taverna-execution-impl/pom.xml b/taverna-execution-impl/pom.xml
index 91b6537..47f5f79 100644
--- a/taverna-execution-impl/pom.xml
+++ b/taverna-execution-impl/pom.xml
@@ -33,12 +33,10 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>uk.org.taverna.databundle</groupId>
 			<artifactId>databundle</artifactId>
-                        <version>${taverna.databundle.version}</version>
 		</dependency>
 	</dependencies>
 	<repositories>
diff --git a/taverna-execution-impl/src/main/java/uk/org/taverna/platform/execution/impl/ExecutionEnvironmentServiceImpl.java b/taverna-execution-impl/src/main/java/uk/org/taverna/platform/execution/impl/ExecutionEnvironmentServiceImpl.java
index 367aec5..13eeec2 100644
--- a/taverna-execution-impl/src/main/java/uk/org/taverna/platform/execution/impl/ExecutionEnvironmentServiceImpl.java
+++ b/taverna-execution-impl/src/main/java/uk/org/taverna/platform/execution/impl/ExecutionEnvironmentServiceImpl.java
@@ -49,18 +49,18 @@
  * @author David Withers
  */
 public class ExecutionEnvironmentServiceImpl implements ExecutionEnvironmentService {
-
 	private static final Logger logger = Logger.getLogger(ExecutionEnvironmentServiceImpl.class.getName());
 
+	@SuppressWarnings("unused")
 	private final Scufl2Tools scufl2Tools = new Scufl2Tools();
-
 	private Set<ExecutionService> executionServices;
 
 	@Override
 	public Set<ExecutionEnvironment> getExecutionEnvironments() {
 		Set<ExecutionEnvironment> executionEnvironments = new HashSet<>();
 		for (ExecutionService executionService : executionServices)
-			executionEnvironments.addAll(executionService.getExecutionEnvivonments());
+			executionEnvironments.addAll(executionService
+					.getExecutionEnvironments());
 		return executionEnvironments;
 	}
 
@@ -98,7 +98,7 @@
 						executionEnvironment.getName(), activity.getType()));
 				return false;
 			}
-			Configuration activityConfiguration = scufl2Tools.configurationFor(activity, profile);
+			Configuration activityConfiguration = activity.getConfiguration();
 			if (!isValidActivityConfiguration(executionEnvironment, activityConfiguration, activity)) {
 				logger.fine(MessageFormat.format("Invalid activity configuration for {1} in {0}",
 						executionEnvironment.getName(), activity.getType()));
diff --git a/taverna-execution-local/pom.xml b/taverna-execution-local/pom.xml
index 4b537bf..8b55f45 100644
--- a/taverna-execution-local/pom.xml
+++ b/taverna-execution-local/pom.xml
@@ -75,17 +75,14 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>uk.org.taverna.databundle</groupId>
 			<artifactId>databundle</artifactId>
-			<version>${taverna.databundle.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-                        <version>${junit.version}</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
diff --git a/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionService.java b/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionService.java
index e7de9bf..9038e0f 100644
--- a/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionService.java
+++ b/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionService.java
@@ -47,37 +47,39 @@
  *
  * @author David Withers
  */
-public class LocalExecutionService extends AbstractExecutionService implements WorkflowCompiler {
-
+public class LocalExecutionService extends AbstractExecutionService implements
+		WorkflowCompiler {
 	private Edits edits;
-
 	private ActivityService activityService;
-
 	private DispatchLayerService dispatchLayerService;
-
 	private ReferenceService referenceService;
 
 	/**
-	 * Constructs an execution service that executes workflows using the T2 dataflow engine.
+	 * Constructs an execution service that executes workflows using the T2
+	 * dataflow engine.
 	 */
 	public LocalExecutionService() {
-		super(LocalExecutionService.class.getName(), "Taverna Local Execution Service",
+		super(
+				LocalExecutionService.class.getName(),
+				"Taverna Local Execution Service",
 				"Execution Service for executing Taverna workflows using a local Taverna Dataflow Engine");
 	}
 
 	@Override
-	public Set<ExecutionEnvironment> getExecutionEnvivonments() {
-		Set<ExecutionEnvironment> executionEnvironments = new HashSet<ExecutionEnvironment>();
-		executionEnvironments.add(new LocalExecutionEnvironment(this, activityService,
-				dispatchLayerService));
+	public Set<ExecutionEnvironment> getExecutionEnvironments() {
+		Set<ExecutionEnvironment> executionEnvironments = new HashSet<>();
+		executionEnvironments.add(new LocalExecutionEnvironment(this,
+				activityService, dispatchLayerService));
 		return executionEnvironments;
 	}
 
 	@Override
-	protected Execution createExecutionImpl(WorkflowBundle workflowBundle, Workflow workflow,
-			Profile profile, Bundle dataBundle) throws InvalidWorkflowException {
-		return new LocalExecution(workflowBundle, workflow, profile, dataBundle,
-				referenceService, edits, activityService, dispatchLayerService);
+	protected Execution createExecutionImpl(WorkflowBundle workflowBundle,
+			Workflow workflow, Profile profile, Bundle dataBundle)
+			throws InvalidWorkflowException {
+		return new LocalExecution(workflowBundle, workflow, profile,
+				dataBundle, referenceService, edits, activityService,
+				dispatchLayerService);
 	}
 
 	/**
diff --git a/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/WorkflowToDataflowMapper.java b/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/WorkflowToDataflowMapper.java
index a8def44..986705a 100644
--- a/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/WorkflowToDataflowMapper.java
+++ b/taverna-execution-local/src/main/java/uk/org/taverna/platform/execution/impl/local/WorkflowToDataflowMapper.java
@@ -87,7 +87,7 @@
 
 /**
  * Translates a scufl2 {@link Workflow} into a {@link Dataflow}.
- *
+ * 
  * @author David Withers
  */
 public class WorkflowToDataflowMapper {
@@ -105,13 +105,15 @@
 	private final Map<net.sf.taverna.t2.workflowmodel.Processor, Processor> dataflowToWorkflowProcessors;
 	private final Map<Activity, net.sf.taverna.t2.workflowmodel.processor.activity.Activity<?>> workflowToDataflowActivities;
 	private final Map<net.sf.taverna.t2.workflowmodel.processor.activity.Activity<?>, Activity> dataflowToWorkflowActivities;
+	@SuppressWarnings("unused")
 	private final WorkflowBundle workflowBundle;
 	private final Profile profile;
 	private final ActivityService activityService;
 	private final DispatchLayerService dispatchLayerService;
 
-	public WorkflowToDataflowMapper(WorkflowBundle workflowBundle, Profile profile, Edits edits,
-			ActivityService activityService, DispatchLayerService dispatchLayerService) {
+	public WorkflowToDataflowMapper(WorkflowBundle workflowBundle,
+			Profile profile, Edits edits, ActivityService activityService,
+			DispatchLayerService dispatchLayerService) {
 		this.workflowBundle = workflowBundle;
 		this.profile = profile;
 		this.edits = edits;
@@ -132,7 +134,8 @@
 		return dataflowToWorkflow.get(dataflow);
 	}
 
-	public Dataflow getDataflow(Workflow workflow) throws InvalidWorkflowException {
+	public Dataflow getDataflow(Workflow workflow)
+			throws InvalidWorkflowException {
 		if (!workflowToDataflow.containsKey(workflow)) {
 			try {
 				Dataflow dataflow = createDataflow(workflow);
@@ -175,7 +178,7 @@
 		// create the dataflow
 		Dataflow dataflow = edits.createDataflow();
 		// set the dataflow name
-		edits.getUpdateDataflowNameEdit(dataflow, new String(workflow.getName())).doEdit();
+		edits.getUpdateDataflowNameEdit(dataflow, workflow.getName()).doEdit();
 
 		addInputPorts(workflow, dataflow);
 		addOutputPorts(workflow, dataflow);
@@ -186,10 +189,10 @@
 		return dataflow;
 	}
 
-	private void addProcessors(Workflow workflow, Dataflow dataflow) throws EditException,
-			ActivityNotFoundException, ActivityConfigurationException,
-			InvalidWorkflowException, DispatchLayerNotFoundException,
-			DispatchLayerConfigurationException {
+	private void addProcessors(Workflow workflow, Dataflow dataflow)
+			throws EditException, ActivityNotFoundException,
+			ActivityConfigurationException, InvalidWorkflowException,
+			DispatchLayerNotFoundException, DispatchLayerConfigurationException {
 		for (Processor processor : workflow.getProcessors()) {
 			net.sf.taverna.t2.workflowmodel.Processor dataflowProcessor = edits
 					.createProcessor(processor.getName());
@@ -198,8 +201,9 @@
 			workflowToDataflowProcessors.put(processor, dataflowProcessor);
 			dataflowToWorkflowProcessors.put(dataflowProcessor, processor);
 			// add input ports
-			for (InputProcessorPort inputProcessorPort : processor.getInputPorts()) {
-				if (scufl2Tools.datalinksTo(inputProcessorPort).isEmpty())
+			for (InputProcessorPort inputProcessorPort : processor
+					.getInputPorts()) {
+				if (inputProcessorPort.getDatalinksTo().isEmpty())
 					continue;
 				ProcessorInputPort processorInputPort = edits
 						.createProcessorInputPort(dataflowProcessor,
@@ -210,12 +214,15 @@
 				inputPorts.put(inputProcessorPort, processorInputPort);
 			}
 			// add output ports
-			for (OutputProcessorPort outputProcessorPort : processor.getOutputPorts()) {
-				ProcessorOutputPort processorOutputPort = edits.createProcessorOutputPort(
-						dataflowProcessor, outputProcessorPort.getName(),
-						outputProcessorPort.getDepth(), outputProcessorPort.getGranularDepth());
-				edits.getAddProcessorOutputPortEdit(dataflowProcessor, processorOutputPort)
-						.doEdit();
+			for (OutputProcessorPort outputProcessorPort : processor
+					.getOutputPorts()) {
+				ProcessorOutputPort processorOutputPort = edits
+						.createProcessorOutputPort(dataflowProcessor,
+								outputProcessorPort.getName(),
+								outputProcessorPort.getDepth(),
+								outputProcessorPort.getGranularDepth());
+				edits.getAddProcessorOutputPortEdit(dataflowProcessor,
+						processorOutputPort).doEdit();
 				outputPorts.put(outputProcessorPort, processorOutputPort);
 			}
 
@@ -233,14 +240,13 @@
 
 	private void addDispatchStack(Processor processor,
 			net.sf.taverna.t2.workflowmodel.Processor dataflowProcessor)
-			throws DispatchLayerNotFoundException, DispatchLayerConfigurationException,
-			EditException {
+			throws DispatchLayerNotFoundException,
+			DispatchLayerConfigurationException, EditException {
 		DispatchStack dispatchStack = dataflowProcessor.getDispatchStack();
 
 		JsonNode json = null;
 		try {
-			Configuration configuration = scufl2Tools.configurationFor(processor, profile);
-			json = configuration.getJson();
+			json = processor.getConfiguration(profile).getJson();
 		} catch (IndexOutOfBoundsException e) {
 			// no configuration for processor
 		}
@@ -254,49 +260,59 @@
 				dispatchStack,
 				URI.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/ErrorBounce"),
 				layer++, null);
-		addDispatchLayer(dispatchStack,
+		addDispatchLayer(
+				dispatchStack,
 				URI.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Failover"),
 				layer++, null);
-		addDispatchLayer(dispatchStack,
+		addDispatchLayer(
+				dispatchStack,
 				URI.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Retry"),
 				layer++, json == null ? null : json.get("retry"));
-		addDispatchLayer(dispatchStack,
+		addDispatchLayer(
+				dispatchStack,
 				URI.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Stop"),
 				layer++, null);
-		addDispatchLayer(dispatchStack,
+		addDispatchLayer(
+				dispatchStack,
 				URI.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Invoke"),
 				layer++, null);
 
 	}
 
-	private void addDispatchLayer(DispatchStack dispatchStack, URI dispatchLayerType, int layer,
-			JsonNode json) throws DispatchLayerConfigurationException,
+	private void addDispatchLayer(DispatchStack dispatchStack,
+			URI dispatchLayerType, int layer, JsonNode json)
+			throws DispatchLayerConfigurationException,
 			DispatchLayerNotFoundException, EditException {
 		// create the dispatch layer
-		DispatchLayer<?> dispatchLayer = dispatchLayerService.createDispatchLayer(
-				dispatchLayerType, json);
+		DispatchLayer<?> dispatchLayer = dispatchLayerService
+				.createDispatchLayer(dispatchLayerType, json);
 		// add the dispatch layer to the dispatch layer stack
-		edits.getAddDispatchLayerEdit(dispatchStack, dispatchLayer, layer).doEdit();
+		edits.getAddDispatchLayerEdit(dispatchStack, dispatchLayer, layer)
+				.doEdit();
 	}
 
 	private void addIterationStrategy(Processor processor,
-			net.sf.taverna.t2.workflowmodel.Processor dataflowProcessor) throws EditException,
-			InvalidWorkflowException {
+			net.sf.taverna.t2.workflowmodel.Processor dataflowProcessor)
+			throws EditException, InvalidWorkflowException {
 		// get the iteration strategy from the processor
 		net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategyStack dataflowIterationStrategyStack = dataflowProcessor
 				.getIterationStrategy();
 		// clear the iteration strategy
-		edits.getClearIterationStrategyStackEdit(dataflowIterationStrategyStack).doEdit();
-		IterationStrategyStack iterationStrategyStack = processor.getIterationStrategyStack();
+		edits.getClearIterationStrategyStackEdit(dataflowIterationStrategyStack)
+				.doEdit();
+		IterationStrategyStack iterationStrategyStack = processor
+				.getIterationStrategyStack();
 		for (IterationStrategyTopNode iterationStrategyTopNode : iterationStrategyStack) {
 			// create iteration strategy
-			IterationStrategy dataflowIterationStrategy = edits.createIterationStrategy();
+			IterationStrategy dataflowIterationStrategy = edits
+					.createIterationStrategy();
 			// add iteration strategy to the stack
 			edits.getAddIterationStrategyEdit(dataflowIterationStrategyStack,
 					dataflowIterationStrategy).doEdit();
 			// add the node to the iteration strategy
 			addIterationStrategyNode(dataflowIterationStrategy,
-					dataflowIterationStrategy.getTerminalNode(), iterationStrategyTopNode);
+					dataflowIterationStrategy.getTerminalNode(),
+					iterationStrategyTopNode);
 		}
 	}
 
@@ -311,39 +327,45 @@
 			childDataflowIterationStrategyNode = new net.sf.taverna.t2.workflowmodel.processor.iteration.CrossProduct();
 			for (IterationStrategyNode iterationStrategyNode2 : crossProduct)
 				addIterationStrategyNode(dataflowIterationStrategy,
-						childDataflowIterationStrategyNode, iterationStrategyNode2);
+						childDataflowIterationStrategyNode,
+						iterationStrategyNode2);
 		} else if (iterationStrategyNode instanceof DotProduct) {
 			DotProduct dotProduct = (DotProduct) iterationStrategyNode;
 			childDataflowIterationStrategyNode = new net.sf.taverna.t2.workflowmodel.processor.iteration.DotProduct();
 			for (IterationStrategyNode iterationStrategyNode2 : dotProduct)
 				addIterationStrategyNode(dataflowIterationStrategy,
-						childDataflowIterationStrategyNode, iterationStrategyNode2);
+						childDataflowIterationStrategyNode,
+						iterationStrategyNode2);
 		} else if (iterationStrategyNode instanceof PortNode) {
 			PortNode portNode = (PortNode) iterationStrategyNode;
 			Integer desiredDepth = portNode.getDesiredDepth();
 			if (desiredDepth == null)
 				desiredDepth = portNode.getInputProcessorPort().getDepth();
-			NamedInputPortNode namedInputPortNode = new NamedInputPortNode(portNode
-					.getInputProcessorPort().getName(), desiredDepth);
-			edits.getAddIterationStrategyInputNodeEdit(dataflowIterationStrategy,
-					namedInputPortNode).doEdit();
+			NamedInputPortNode namedInputPortNode = new NamedInputPortNode(
+					portNode.getInputProcessorPort().getName(), desiredDepth);
+			edits.getAddIterationStrategyInputNodeEdit(
+					dataflowIterationStrategy, namedInputPortNode).doEdit();
 			childDataflowIterationStrategyNode = namedInputPortNode;
 		} else {
-			throw new InvalidWorkflowException("Unknown IterationStrategyNode type : "
-					+ iterationStrategyNode.getClass().getName());
+			throw new InvalidWorkflowException(
+					"Unknown IterationStrategyNode type : "
+							+ iterationStrategyNode.getClass().getName());
 		}
-		childDataflowIterationStrategyNode.setParent(dataflowIterationStrategyNode);
+		childDataflowIterationStrategyNode
+				.setParent(dataflowIterationStrategyNode);
 	}
 
-	private void addActivity(ProcessorBinding processorBinding) throws EditException,
-			ActivityNotFoundException, ActivityConfigurationException, InvalidWorkflowException {
+	private void addActivity(ProcessorBinding processorBinding)
+			throws EditException, ActivityNotFoundException,
+			ActivityConfigurationException, InvalidWorkflowException {
 		net.sf.taverna.t2.workflowmodel.Processor processor = workflowToDataflowProcessors
 				.get(processorBinding.getBoundProcessor());
 		Activity scufl2Activity = processorBinding.getBoundActivity();
 		URI activityType = scufl2Activity.getType();
 		if (!activityService.activityExists(activityType))
-			throw new ActivityNotFoundException("No activity exists for " + activityType);
-		Configuration configuration = scufl2Tools.configurationFor(scufl2Activity, profile);
+			throw new ActivityNotFoundException("No activity exists for "
+					+ activityType);
+		Configuration configuration = scufl2Activity.getConfiguration();
 
 		// create the activity
 		net.sf.taverna.t2.workflowmodel.processor.activity.Activity<?> activity = activityService
@@ -351,52 +373,67 @@
 		// check if we have a nested workflow
 		if (activityType.equals(NESTED_WORKFLOW_URI)) {
 			if (activity instanceof NestedDataflow) {
-				Workflow nestedWorkflow = scufl2Tools.nestedWorkflowForProcessor(
-						processorBinding.getBoundProcessor(), profile);
+				Workflow nestedWorkflow = scufl2Tools
+						.nestedWorkflowForProcessor(
+								processorBinding.getBoundProcessor(), profile);
 				((NestedDataflow) activity)
 						.setNestedDataflow(getDataflow(nestedWorkflow));
-			} else {
+			} else
 				throw new ActivityConfigurationException(
 						"Activity is not an instance of NestedDataflow");
-			}
 		}
 
 		// add the activity to the processor
 		edits.getAddActivityEdit(processor, activity).doEdit();
 
 		// add input ports
-		for (InputActivityPort inputActivityPort : scufl2Activity.getInputPorts()) {
-			ActivityInputPort activityInputPort = edits.createActivityInputPort(
-					inputActivityPort.getName(), inputActivityPort.getDepth(), false,
-					new ArrayList<Class<? extends ExternalReferenceSPI>>(), String.class);
-			edits.getAddActivityInputPortEdit(activity, activityInputPort).doEdit();
+		for (InputActivityPort inputActivityPort : scufl2Activity
+				.getInputPorts()) {
+			ActivityInputPort activityInputPort = edits
+					.createActivityInputPort(
+							inputActivityPort.getName(),
+							inputActivityPort.getDepth(),
+							false,
+							new ArrayList<Class<? extends ExternalReferenceSPI>>(),
+							String.class);
+			edits.getAddActivityInputPortEdit(activity, activityInputPort)
+					.doEdit();
 		}
 		// add output ports
-		for (OutputActivityPort outputActivityPort : scufl2Activity.getOutputPorts()) {
-			ActivityOutputPort activitytOutputPort = edits.createActivityOutputPort(
-					outputActivityPort.getName(), outputActivityPort.getDepth(),
-					outputActivityPort.getGranularDepth());
-			edits.getAddActivityOutputPortEdit(activity, activitytOutputPort).doEdit();
+		for (OutputActivityPort outputActivityPort : scufl2Activity
+				.getOutputPorts()) {
+			ActivityOutputPort activitytOutputPort = edits
+					.createActivityOutputPort(outputActivityPort.getName(),
+							outputActivityPort.getDepth(),
+							outputActivityPort.getGranularDepth());
+			edits.getAddActivityOutputPortEdit(activity, activitytOutputPort)
+					.doEdit();
 		}
 		// map input ports
-		for (ProcessorInputPortBinding portBinding : processorBinding.getInputPortBindings()) {
-			InputProcessorPort processorPort = portBinding.getBoundProcessorPort();
+		for (ProcessorInputPortBinding portBinding : processorBinding
+				.getInputPortBindings()) {
+			InputProcessorPort processorPort = portBinding
+					.getBoundProcessorPort();
 			InputActivityPort activityPort = portBinding.getBoundActivityPort();
-			edits.getAddActivityInputPortMappingEdit(activity, processorPort.getName(),
-					activityPort.getName()).doEdit();
+			edits.getAddActivityInputPortMappingEdit(activity,
+					processorPort.getName(), activityPort.getName()).doEdit();
 		}
 		// map output ports
-		for (ProcessorOutputPortBinding portBinding : processorBinding.getOutputPortBindings()) {
-			OutputProcessorPort processorPort = portBinding.getBoundProcessorPort();
-			OutputActivityPort activityPort = portBinding.getBoundActivityPort();
-			edits.getAddActivityOutputPortMappingEdit(activity, processorPort.getName(),
-					activityPort.getName()).doEdit();
+		for (ProcessorOutputPortBinding portBinding : processorBinding
+				.getOutputPortBindings()) {
+			OutputProcessorPort processorPort = portBinding
+					.getBoundProcessorPort();
+			OutputActivityPort activityPort = portBinding
+					.getBoundActivityPort();
+			edits.getAddActivityOutputPortMappingEdit(activity,
+					processorPort.getName(), activityPort.getName()).doEdit();
 		}
 		workflowToDataflowActivities.put(scufl2Activity, activity);
 		dataflowToWorkflowActivities.put(activity, scufl2Activity);
 	}
 
-	private void addDataLinks(Workflow workflow, Dataflow dataflow) throws EditException {
+	private void addDataLinks(Workflow workflow, Dataflow dataflow)
+			throws EditException {
 		for (DataLink dataLink : workflow.getDataLinks()) {
 			ReceiverPort receiverPort = dataLink.getSendsTo();
 			SenderPort senderPort = dataLink.getReceivesFrom();
@@ -411,33 +448,35 @@
 				}
 				Merge merge = merges.get(receiverPort);
 				// create merge input port
-				MergeInputPort mergeInputPort = edits.createMergeInputPort(merge, "input"
-						+ mergePosition, sink.getDepth());
+				MergeInputPort mergeInputPort = edits.createMergeInputPort(
+						merge, "input" + mergePosition, sink.getDepth());
 				// add it to the correct position in the merge
 				@SuppressWarnings("unchecked")
-				List<MergeInputPort> mergeInputPorts = (List<MergeInputPort>) merge.getInputPorts();
-				if (mergePosition > mergeInputPorts.size()) {
+				List<MergeInputPort> mergeInputPorts = (List<MergeInputPort>) merge
+						.getInputPorts();
+				if (mergePosition > mergeInputPorts.size())
 					mergeInputPorts.add(mergeInputPort);
-				} else {
+				else
 					mergeInputPorts.add(mergePosition, mergeInputPort);
-				}
 				// connect a datalink into the merge
-				Datalink datalinkIn = edits.createDatalink(source, mergeInputPort);
+				Datalink datalinkIn = edits.createDatalink(source,
+						mergeInputPort);
 				edits.getConnectDatalinkEdit(datalinkIn).doEdit();
 				// check if the merge output has been connected
-				EventForwardingOutputPort mergeOutputPort = merge.getOutputPort();
-				if (mergeOutputPort.getOutgoingLinks().size() == 0) {
-					Datalink datalinkOut = edits.createDatalink(merge.getOutputPort(), sink);
+				EventForwardingOutputPort mergeOutputPort = merge
+						.getOutputPort();
+				if (mergeOutputPort.getOutgoingLinks().isEmpty()) {
+					Datalink datalinkOut = edits.createDatalink(
+							merge.getOutputPort(), sink);
 					edits.getConnectDatalinkEdit(datalinkOut).doEdit();
 				} else if (mergeOutputPort.getOutgoingLinks().size() == 1) {
-					if (mergeOutputPort.getOutgoingLinks().iterator().next().getSink() != sink) {
+					if (mergeOutputPort.getOutgoingLinks().iterator().next()
+							.getSink() != sink)
 						throw new EditException(
 								"Cannot add a different sinkPort to a Merge that already has one defined");
-					}
-				} else {
+				} else
 					throw new EditException(
 							"The merge instance cannot have more that 1 outgoing Datalink");
-				}
 			} else {
 				Datalink datalink = edits.createDatalink(source, sink);
 				edits.getConnectDatalinkEdit(datalink).doEdit();
@@ -449,31 +488,40 @@
 		for (ControlLink controlLink : workflow.getControlLinks()) {
 			if (controlLink instanceof BlockingControlLink) {
 				BlockingControlLink blockingControlLink = (BlockingControlLink) controlLink;
-				Processor untilFinished = blockingControlLink.getUntilFinished();
+				Processor untilFinished = blockingControlLink
+						.getUntilFinished();
 				Processor block = blockingControlLink.getBlock();
-				edits.getCreateConditionEdit(workflowToDataflowProcessors.get(untilFinished),
+				edits.getCreateConditionEdit(
+						workflowToDataflowProcessors.get(untilFinished),
 						workflowToDataflowProcessors.get(block)).doEdit();
 			}
 		}
 	}
 
-	private void addOutputPorts(Workflow workflow, Dataflow dataflow) throws EditException {
+	private void addOutputPorts(Workflow workflow, Dataflow dataflow)
+			throws EditException {
 		for (OutputWorkflowPort outputWorkflowPort : workflow.getOutputPorts()) {
-			DataflowOutputPort dataflowOutputPort = edits.createDataflowOutputPort(
-					outputWorkflowPort.getName(), dataflow);
-			edits.getAddDataflowOutputPortEdit(dataflow, dataflowOutputPort).doEdit();
-			inputPorts.put(outputWorkflowPort, dataflowOutputPort.getInternalInputPort());
+			DataflowOutputPort dataflowOutputPort = edits
+					.createDataflowOutputPort(outputWorkflowPort.getName(),
+							dataflow);
+			edits.getAddDataflowOutputPortEdit(dataflow, dataflowOutputPort)
+					.doEdit();
+			inputPorts.put(outputWorkflowPort,
+					dataflowOutputPort.getInternalInputPort());
 		}
 	}
 
-	private void addInputPorts(Workflow workflow, Dataflow dataflow) throws EditException {
+	private void addInputPorts(Workflow workflow, Dataflow dataflow)
+			throws EditException {
 		for (InputWorkflowPort inputWorkflowPort : workflow.getInputPorts()) {
-			DataflowInputPort dataflowInputPort = edits.createDataflowInputPort(
-					inputWorkflowPort.getName(), inputWorkflowPort.getDepth(),
-					inputWorkflowPort.getDepth(), dataflow);
-			edits.getAddDataflowInputPortEdit(dataflow, dataflowInputPort).doEdit();
-			outputPorts.put(inputWorkflowPort, dataflowInputPort.getInternalOutputPort());
+			DataflowInputPort dataflowInputPort = edits
+					.createDataflowInputPort(inputWorkflowPort.getName(),
+							inputWorkflowPort.getDepth(),
+							inputWorkflowPort.getDepth(), dataflow);
+			edits.getAddDataflowInputPortEdit(dataflow, dataflowInputPort)
+					.doEdit();
+			outputPorts.put(inputWorkflowPort,
+					dataflowInputPort.getInternalOutputPort());
 		}
 	}
-
 }
diff --git a/taverna-execution-local/src/test/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionTest.java b/taverna-execution-local/src/test/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionTest.java
index 3bb5d42..58a667e 100644
--- a/taverna-execution-local/src/test/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionTest.java
+++ b/taverna-execution-local/src/test/java/uk/org/taverna/platform/execution/impl/local/LocalExecutionTest.java
@@ -143,6 +143,7 @@
 	// System.out.println(report);
 	// }
 
+	@SuppressWarnings("unused")
 	private void waitForResult(Map<String, Object> results, String port, WorkflowReport report)
 			throws InterruptedException {
 		int wait = 0;
diff --git a/taverna-execution-remote/pom.xml b/taverna-execution-remote/pom.xml
index 7c1a63f..a3b7aae 100644
--- a/taverna-execution-remote/pom.xml
+++ b/taverna-execution-remote/pom.xml
@@ -39,12 +39,10 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>uk.org.taverna.databundle</groupId>
 			<artifactId>databundle</artifactId>
-			<version>${taverna.databundle.version}</version>
 		</dependency>
 	</dependencies>
 	<repositories>
diff --git a/taverna-execution-remote/src/main/java/uk/org/taverna/platform/execution/impl/remote/RemoteExecutionService.java b/taverna-execution-remote/src/main/java/uk/org/taverna/platform/execution/impl/remote/RemoteExecutionService.java
index 53e8e9c..6ca8db7 100644
--- a/taverna-execution-remote/src/main/java/uk/org/taverna/platform/execution/impl/remote/RemoteExecutionService.java
+++ b/taverna-execution-remote/src/main/java/uk/org/taverna/platform/execution/impl/remote/RemoteExecutionService.java
@@ -53,7 +53,7 @@
 	}
 
 	@Override
-	public Set<ExecutionEnvironment> getExecutionEnvivonments() {
+	public Set<ExecutionEnvironment> getExecutionEnvironments() {
 		return Collections.<ExecutionEnvironment>emptySet();
 	}
 
diff --git a/taverna-report-api/pom.xml b/taverna-report-api/pom.xml
index 40aa0f1..a7b6650 100644
--- a/taverna-report-api/pom.xml
+++ b/taverna-report-api/pom.xml
@@ -14,28 +14,14 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
-        <dependency>
-            <groupId>uk.org.taverna.scufl2</groupId>
-            <artifactId>scufl2-rdfxml</artifactId>
-            <version>${scufl2.version}</version>
-        </dependency>        
 		<dependency>
 			<groupId>uk.org.taverna.databundle</groupId>
 			<artifactId>databundle</artifactId>
-			<version>${taverna.databundle.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>${osgi.core.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-                        <version>${junit.version}</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
diff --git a/taverna-run-api/pom.xml b/taverna-run-api/pom.xml
index 77c960c..1b1c8f0 100644
--- a/taverna-run-api/pom.xml
+++ b/taverna-run-api/pom.xml
@@ -25,17 +25,14 @@
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>uk.org.taverna.databundle</groupId>
 			<artifactId>databundle</artifactId>
-			<version>${taverna.databundle.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-			<version>${junit.version}</version>
 			<scope>test</scope>
 		</dependency>
 		<dependency>
diff --git a/taverna-run-impl/pom.xml b/taverna-run-impl/pom.xml
index 36fd657..cf6a2e7 100644
--- a/taverna-run-impl/pom.xml
+++ b/taverna-run-impl/pom.xml
@@ -42,27 +42,22 @@
 		<dependency>
 			<groupId>uk.org.taverna.configuration</groupId>
 			<artifactId>taverna-app-configuration-api</artifactId>
-			<version>${taverna.configuration.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>uk.org.taverna.scufl2</groupId>
 			<artifactId>scufl2-api</artifactId>
-			<version>${scufl2.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>uk.org.taverna.databundle</groupId>
 			<artifactId>databundle</artifactId>
-			<version>${taverna.databundle.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>org.osgi</groupId>
 			<artifactId>org.osgi.compendium</artifactId>
-			<version>${osgi.core.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-                        <version>${junit.version}</version>
 			<scope>test</scope>
 		</dependency>
 		<dependency>