[cig-commits] commit: Cleaned-up a lot of compile-warnings.

Mercurial hg at geodynamics.org
Fri Feb 5 12:10:01 PST 2010


changeset:   746:c3b4e4b75a06
branch:      1.4.x
parent:      739:fe089b369b12
user:        JericoRevote
date:        Thu Jan 14 17:42:23 2010 +1100
files:       Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.c Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.c Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.c Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.c Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c Assembly/src/Finalise.c Assembly/src/Init.c Assembly/src/IsoviscousStressTensorTerm.c Assembly/src/MassMatrixTerm.c Assembly/src/PressureGradForceTerm.c Assembly/src/PressureGradMatrixTerm.c Assembly/src/ThermalBuoyancyForceTerm.c Assembly/tests/IsoviscousStiffnessSuite.c Discretisation/src/AnalyticSolution.c Discretisation/src/BilinearElementType.c Discretisation/src/BilinearInnerElType.c Discretisation/src/Biquadratic.c Discretisation/src/C0Generator.c Discretisation/src/C2Generator.c Discretisation/src/ConstantElementType.c Discretisation/src/ElementType.c Discretisation/src/ElementType_Register.c Discretisation/src/FeEquationNumber.c Discretisation/src/FeMesh.c Discretisation/src/FeMesh_Algorithms.c Discretisation/src/FeMesh_ElementType.c Discretisation/src/FeSwarmVariable.c Discretisation/src/FeVariable.c Discretisation/src/FieldTest.c Discretisation/src/Finalise.c Discretisation/src/Init.c Discretisation/src/Inner2DGenerator.c Discretisation/src/LinearTriangleElementType.c Discretisation/src/LinkedDofInfo.c Discretisation/src/OperatorFeVariable.c Discretisation/src/P1.c Discretisation/src/RegularBilinear.c Discretisation/src/RegularTrilinear.c Discretisation/src/ShapeFeVariable.c Discretisation/src/TrilinearElementType.c Discretisation/src/TrilinearInnerElType.c Discretisation/src/Triquadratic.c SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c SLE/ProvidedSystems/AdvectionDiffusion/src/Finalise.c SLE/ProvidedSystems/AdvectionDiffusion/src/Init.c SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c SLE/ProvidedSystems/AdvectionDiffusion/tests/LumpedMassMatrixSuite.c SLE/ProvidedSystems/AdvectionDiffusion/tests/UpwindXiSuite.c SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testLumpedMassMatrix.c SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testUpwindXi.c SLE/ProvidedSystems/Energy/src/Energy_SLE.c SLE/ProvidedSystems/Energy/src/Finalise.c SLE/ProvidedSystems/Energy/src/Init.c SLE/ProvidedSystems/StokesFlow/src/Finalise.c SLE/ProvidedSystems/StokesFlow/src/Init.c SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c SLE/ProvidedSystems/src/Finalise.c SLE/ProvidedSystems/src/Init.c SLE/SystemSetup/src/Assembler.c SLE/SystemSetup/src/Finalise.c SLE/SystemSetup/src/FiniteElementContext.c SLE/SystemSetup/src/ForceTerm.c SLE/SystemSetup/src/ForceVector.c SLE/SystemSetup/src/Init.c SLE/SystemSetup/src/MGOpGenerator.c SLE/SystemSetup/src/MultigridSolver.c SLE/SystemSetup/src/PETScMGSolver.c SLE/SystemSetup/src/SLE_Solver.c SLE/SystemSetup/src/SROpGenerator.c SLE/SystemSetup/src/SolutionVector.c SLE/SystemSetup/src/StiffnessMatrix.c SLE/SystemSetup/src/StiffnessMatrixTerm.c SLE/SystemSetup/src/SystemLinearEquations.c SLE/SystemSetup/tests/ContextSuite.c SLE/src/Finalise.c SLE/src/Init.c SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.c SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.c SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.c libStgFEM/Toolbox/Toolbox.c libStgFEM/src/Finalise.c libStgFEM/src/Init.c libStgFEM/tests/LibStgFEMSuite.c libStgFEM/tests/testLibStgFEM.c plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c plugins/Document/Document.c plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c plugins/FeVariableImportExporters/FeVariable_ImportExport_SpecRidge2D/FeVariable_ImportExport_SpecRidge2D.c plugins/FileAnalyticSolution/FileAnalyticSolution.c plugins/Multigrid/Multigrid.c plugins/Output/CPUTime/CPUTime.c plugins/Output/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve.c plugins/Output/FeVariableList/FeVariableList.c plugins/Output/FrequentOutput/FrequentOutput.c plugins/Output/PeakMemory/PeakMemory.c plugins/Output/PrintFeVariableDiscreteValues/Plugin.c plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c plugins/Output/SwarmVariableList/SwarmVariableList.c plugins/StandardConditionFunctions/StandardConditionFunctions.c
description:
Cleaned-up a lot of compile-warnings.


diff -r fe089b369b12 -r c3b4e4b75a06 Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c
--- a/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c	Thu Jan 14 17:42:23 2010 +1100
@@ -73,12 +73,12 @@ void AdvDiffSteadyState1D_TemperatureFun
 
 void AdvDiffSteadyState1D_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* temperature ){
 	DomainContext*	context    = (DomainContext*)_context;
-	AdvDiffSteadyState1D*   self       = Stg_ComponentFactory_ConstructByName( context->CF, AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True, 0 /* dummy */ );
+	AdvDiffSteadyState1D*   self       = Stg_ComponentFactory_ConstructByName( context->CF, (Name)AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True, 0 /* dummy */ );
 	FeVariable*             feVariable = NULL;
 	FeMesh*     mesh       = NULL;
 	double*                 coord;
 	
-	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
+	feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
 	mesh       = feVariable->feMesh;
 	coord      = Mesh_GetVertex( mesh, node_lI );
 
@@ -131,18 +131,18 @@ void _AdvDiffSteadyState1D_AssignFromXML
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data );
+	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"TemperatureField", FeVariable, True, data  );
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, self->temperatureField, AdvDiffSteadyState1D_TemperatureFunction );
 
-	self->residual = Stg_ComponentFactory_ConstructByName( cf, "defaultResidualForceTerm", AdvDiffResidualForceTerm, True, data );
+	self->residual = Stg_ComponentFactory_ConstructByName( cf, (Name)"defaultResidualForceTerm", AdvDiffResidualForceTerm, True, data  );
 
-	self->velocity = Stg_ComponentFactory_GetRootDictDouble( cf, "velocity", 1.0 );
-	self->A        = Stg_ComponentFactory_GetRootDictDouble( cf, "A", 1.0 );
-	self->B        = Stg_ComponentFactory_GetRootDictDouble( cf, "B", 0.0 );
-	self->c        = Stg_ComponentFactory_GetRootDictDouble( cf, "c", 0.0 );
+	self->velocity = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"velocity", 1.0  );
+	self->A        = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"A", 1.0  );
+	self->B        = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"B", 0.0  );
+	self->c        = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"c", 0.0  );
 	
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
-	condFunc = ConditionFunction_New( AdvDiffSteadyState1D_TemperatureBC, "AnalyticSolutionFunction" );
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  );
+	condFunc = ConditionFunction_New( AdvDiffSteadyState1D_TemperatureBC, (Name)"AnalyticSolutionFunction"  );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
 
 }
@@ -170,7 +170,7 @@ void* _AdvDiffSteadyState1D_DefaultNew( 
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_AdvDiffSteadyState1D_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, AdvDiffSteadyState1D_Type, "0", _AdvDiffSteadyState1D_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, AdvDiffSteadyState1D_Type, (Name)"0", _AdvDiffSteadyState1D_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.c
--- a/Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.c	Thu Jan 14 17:42:23 2010 +1100
@@ -65,18 +65,13 @@ void CosineHillRotate_TemperatureFunctio
 
 void CosineHillRotate_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context    = (DomainContext*)_context;
-	CosineHillRotate*  self       = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		CosineHillRotate_Type, 
-		CosineHillRotate, 
-		True,
-		0 );
+	CosineHillRotate*  self       = Stg_ComponentFactory_ConstructByName( context->CF, (Name)CosineHillRotate_Type, CosineHillRotate, True, 0 );
 	FeVariable*             feVariable = NULL;
 	FeMesh*			mesh       = NULL;
 	double*                 result     = (double*) _result;
 	double*                 coord;
 	
-	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
+	feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
 	mesh       = feVariable->feMesh;
 	coord = Mesh_GetVertex( mesh, node_lI );
 
@@ -90,19 +85,19 @@ void _CosineHillRotate_AssignFromXML( vo
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data ); 
+	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"TemperatureField", FeVariable, True, data  ); 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, self->temperatureField, CosineHillRotate_TemperatureFunction );
 
 	/* Read values from dictionary */
-	self->hillHeight       = Stg_ComponentFactory_GetRootDictDouble( cf, "CosineHillHeight"  , 1.0 );
-	self->hillDiameter     = Stg_ComponentFactory_GetRootDictDouble( cf, "CosineHillDiameter", 1.0 );
-	self->rotationCentre[ I_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, "SolidBodyRotationCentreX" , 0.0 );
-	self->rotationCentre[ J_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, "SolidBodyRotationCentreY" , 0.0 );
-	self->rotationCentre[ K_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, "SolidBodyRotationCentreZ" , 0.0 );
+	self->hillHeight       = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"CosineHillHeight"  , 1.0  );
+	self->hillDiameter     = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"CosineHillDiameter", 1.0  );
+	self->rotationCentre[ I_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"SolidBodyRotationCentreX" , 0.0  );
+	self->rotationCentre[ J_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"SolidBodyRotationCentreY" , 0.0  );
+	self->rotationCentre[ K_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ" , 0.0  );
 
 	/* Create Condition Functions */
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
-	condFunc = ConditionFunction_New( CosineHillRotate_TemperatureBC, "Temperature_CosineHill" );
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  ); 
+	condFunc = ConditionFunction_New( CosineHillRotate_TemperatureBC, (Name)"Temperature_CosineHill"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 }
 
@@ -135,7 +130,7 @@ void* _CosineHillRotate_DefaultNew( Name
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_CosineHillRotate_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, CosineHillRotate_Type, "0", _CosineHillRotate_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, CosineHillRotate_Type, (Name)"0", _CosineHillRotate_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.c
--- a/Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.c	Thu Jan 14 17:42:23 2010 +1100
@@ -54,16 +54,11 @@ typedef struct {
 
 void HomogeneousEssentialBCs_Velocity_SkewToMesh( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context = (DomainContext*)_context;
-	HomogeneousEssentialBCs*  self    = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		HomogeneousEssentialBCs_Type, 
-		HomogeneousEssentialBCs, 
-		True,
-		0 );
+	HomogeneousEssentialBCs*  self    = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousEssentialBCs_Type, HomogeneousEssentialBCs, True, 0 );
 	double*                 result  = (double*) _result;
 	
 	result[ I_AXIS ] =  cos( self->angle );
-	result[ J_AXIS ] =  sin( self->angle );
+	result[ J_AXIS ] =  sin( self->angle  );
 }
 
 
@@ -83,18 +78,13 @@ void HomogeneousEssentialBCs_Temperature
 	
 void HomogeneousEssentialBCs_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context    = (DomainContext*)_context;
-	HomogeneousEssentialBCs*  self       = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		HomogeneousEssentialBCs_Type, 
-		HomogeneousEssentialBCs, 
-		True,
-		0 );
+	HomogeneousEssentialBCs*  self       = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousEssentialBCs_Type, HomogeneousEssentialBCs, True, 0 );
 	FeVariable*             feVariable = NULL;
 	FeMesh*			mesh       = NULL;
 	double*                 result     = (double*) _result;
 	double*                 coord;
 	
-	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
+	feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
 	mesh       = feVariable->feMesh;
 	coord = Mesh_GetVertex( mesh, node_lI );
 
@@ -108,16 +98,16 @@ void _HomogeneousEssentialBCs_AssignFrom
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data ); 
+	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"TemperatureField", FeVariable, True, data  ); 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, self->temperatureField, HomogeneousEssentialBCs_TemperatureFunction );
 
-	self->angle = StGermain_DegreeToRadian (Stg_ComponentFactory_GetRootDictDouble( cf, "VelocitySkewAngle", 45.0 ) );
+	self->angle = StGermain_DegreeToRadian (Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"VelocitySkewAngle", 45.0 )  );
 
 	/* Create Condition Functions */
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
-	condFunc = ConditionFunction_New( HomogeneousEssentialBCs_Velocity_SkewToMesh, "Velocity_SkewToMesh" );
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  ); 
+	condFunc = ConditionFunction_New( HomogeneousEssentialBCs_Velocity_SkewToMesh, (Name)"Velocity_SkewToMesh"  );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( HomogeneousEssentialBCs_TemperatureBC, "Temperature_StepFunction" );
+	condFunc = ConditionFunction_New( HomogeneousEssentialBCs_TemperatureBC, (Name)"Temperature_StepFunction"  );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
 }
 
@@ -150,7 +140,7 @@ void* _HomogeneousEssentialBCs_DefaultNe
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_HomogeneousEssentialBCs_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, HomogeneousEssentialBCs_Type, "0", _HomogeneousEssentialBCs_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, HomogeneousEssentialBCs_Type, (Name)"0", _HomogeneousEssentialBCs_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c
--- a/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c	Thu Jan 14 17:42:23 2010 +1100
@@ -54,16 +54,11 @@ typedef struct {
 
 void HomogeneousNaturalBCs_Velocity_SkewToMesh( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context = (DomainContext*)_context;
-	HomogeneousNaturalBCs*  self    = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		HomogeneousNaturalBCs_Type, 
-		HomogeneousNaturalBCs, 
-		True,
-		0 );
+	HomogeneousNaturalBCs*  self    = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
 	double*                 result  = (double*) _result;
 	
 	result[ I_AXIS ] =  cos( self->angle );
-	result[ J_AXIS ] =  sin( self->angle );
+	result[ J_AXIS ] =  sin( self->angle  );
 }
 
 
@@ -78,18 +73,13 @@ void HomogeneousNaturalBCs_TemperatureFu
 	
 void HomogeneousNaturalBCs_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context    = (DomainContext*)_context;
-	HomogeneousNaturalBCs*  self       = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		HomogeneousNaturalBCs_Type, 
-		HomogeneousNaturalBCs, 
-		True,
-		0 );
+	HomogeneousNaturalBCs*  self       = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
 	FeVariable*             feVariable = NULL;
 	FeMesh*			mesh       = NULL;
 	double*                 result     = (double*) _result;
 	double*                 coord;
 	
-	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
+	feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
 	mesh       = feVariable->feMesh;
 	coord = Mesh_GetVertex( mesh, node_lI );
 
@@ -103,16 +93,16 @@ void _HomogeneousNaturalBCs_AssignFromXM
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data ); 
+	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"TemperatureField", FeVariable, True, data  ); 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, self->temperatureField, HomogeneousNaturalBCs_TemperatureFunction );
 
-	self->angle = StGermain_DegreeToRadian (Stg_ComponentFactory_GetRootDictDouble( cf, "VelocitySkewAngle", 45.0 ) );
+	self->angle = StGermain_DegreeToRadian (Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"VelocitySkewAngle", 45.0 )  );
 
 	/* Create Condition Functions */
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
-	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_Velocity_SkewToMesh, "Velocity_SkewToMesh" );
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  ); 
+	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_Velocity_SkewToMesh, (Name)"Velocity_SkewToMesh"  );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_TemperatureBC, "Temperature_StepFunction" );
+	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_TemperatureBC, (Name)"Temperature_StepFunction"  );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
 }
 
@@ -145,7 +135,7 @@ void* _HomogeneousNaturalBCs_DefaultNew(
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_HomogeneousNaturalBCs_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, HomogeneousNaturalBCs_Type, "0", _HomogeneousNaturalBCs_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, HomogeneousNaturalBCs_Type, (Name)"0", _HomogeneousNaturalBCs_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c
--- a/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -127,8 +127,8 @@ void _LidDrivenIsoviscousAnalytic_Assign
 	_FieldTest_AssignFromXML( self, cf, data );
 	
 	/* Set constants */
-	self->wavenumber = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "sinusoidalLidWavenumber", 1 );
-	LidDrivenIsoviscousAnalytic_CalculateConstants( self );
+	self->wavenumber = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"sinusoidalLidWavenumber", 1 );
+	LidDrivenIsoviscousAnalytic_CalculateConstants( self  );
 }
 
 void _LidDrivenIsoviscousAnalytic_Build( void* codelet, void* data ) {
@@ -169,7 +169,7 @@ void* _LidDrivenIsoviscousAnalytic_Defau
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_LidDrivenIsoviscousAnalytic_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, LidDrivenIsoviscousAnalytic_Type, "0", _LidDrivenIsoviscousAnalytic_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, LidDrivenIsoviscousAnalytic_Type, (Name)"0", _LidDrivenIsoviscousAnalytic_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.c
--- a/Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -130,10 +130,10 @@ void _StgFEM_LidDrivenStokesAnalytic_Ass
 	_FieldTest_AssignFromXML( self, cf, data );
 
 	/* Set constants */
-	*waveSpeed = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "sinusoidalLidWavenumber", 1 );
+	*waveSpeed = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"sinusoidalLidWavenumber", 1 );
 	self->n = *waveSpeed;
 	
-	StgFEM_LidDrivenStokesAnalytic_CalculateConstants( (FieldTest*)self );
+	StgFEM_LidDrivenStokesAnalytic_CalculateConstants( (FieldTest*)self  );
 }
 
 void _StgFEM_LidDrivenStokesAnalytic_Build( void* codelet, void* data ) {
@@ -174,7 +174,7 @@ Index StgFEM_LidDrivenStokesAnalytic_Reg
 Index StgFEM_LidDrivenStokesAnalytic_Register( PluginsManager* pluginsManager ) {
 	Journal_DPrintf( StgFEM_Debug, "In: %s( void* )\n", __func__ ); 
 
-	return PluginsManager_Submit( pluginsManager, StgFEM_LidDrivenStokesAnalytic_Type, "0", _StgFEM_LidDrivenStokesAnalytic_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_LidDrivenStokesAnalytic_Type, (Name)"0", _StgFEM_LidDrivenStokesAnalytic_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.c
--- a/Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -86,7 +86,7 @@ void LinearVelocityAnalytic_GetCornerNod
 	Node_Index              globalNode_I;
 	Node_Index              ii;
 	
-	vertGrid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+	vertGrid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, ExtensionManager_GetHandle( mesh->info, (Name)"vertexGrid" )  );
 
 	/* Find global indicies of nodes */
 	self->cornerNodeCount = 4;
@@ -176,8 +176,8 @@ void LinearVelocityAnalytic_VelocityGrad
 	/* Transform the coordinate into a master coordinate system */
 	GetLocalCoords( self, coord, xi );
 
-	GNi = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, "GNi" );
-	GNx = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, "GNx" );
+	GNi = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, (Name)"GNi"  );
+	GNx = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, (Name)"GNx"  );
 
 	/* Get Shape Functions */
 	elementType = FeMesh_GetElementType( mesh, 0 );
@@ -327,18 +327,18 @@ void _LinearVelocityAnalytic_AssignFromX
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	self->velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
+	self->velocityField = Stg_ComponentFactory_ConstructByName( cf, (Name)"VelocityField", FeVariable, True, data  ); 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, self->velocityField, LinearVelocityAnalytic_VelocityFunction );
 	
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"PressureField", FeVariable, True, data  ); 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, pressureField, LinearVelocityAnalytic_PressureFunction );
 	
-	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False, data ); 
-	if ( strainRateField )
+	strainRateField = Stg_ComponentFactory_ConstructByName( cf, (Name)"StrainRateField", FeVariable, False, data ); 
+	if ( strainRateField  )
 		AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, strainRateField, LinearVelocityAnalytic_StrainRateFunction );
 	
-	strainRateInvField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateInvariantField", FeVariable, False, data ); 
-	if ( strainRateInvField )
+	strainRateInvField = Stg_ComponentFactory_ConstructByName( cf, (Name)"StrainRateInvariantField", FeVariable, False, data ); 
+	if ( strainRateInvField  )
 		AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, strainRateInvField, LinearVelocityAnalytic_StrainRateInvFunction );
 }
 
@@ -374,7 +374,7 @@ void* _LinearVelocityAnalytic_DefaultNew
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_LinearVelocityAnalytic_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, LinearVelocityAnalytic_Type, "0", _LinearVelocityAnalytic_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, LinearVelocityAnalytic_Type, (Name)"0", _LinearVelocityAnalytic_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c
--- a/Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -77,15 +77,15 @@ void _SimpleShearAnalytic_AssignFromXML(
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, (Name)"VelocityField", FeVariable, True, data  ); 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, velocityField, SimpleShearAnalytic_VelocityFunction );
 	
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"PressureField", FeVariable, True, data  ); 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, pressureField, SimpleShearAnalytic_PressureFunction );
 	
 	/* Set constants */
-	self->centreY = Stg_ComponentFactory_GetRootDictDouble( cf, "simpleShearCentreY", 0.0 );
-	self->factor  = Stg_ComponentFactory_GetRootDictDouble( cf, "SimpleShearFactor", 1.0 );
+	self->centreY = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"simpleShearCentreY", 0.0  );
+	self->factor  = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"SimpleShearFactor", 1.0 );
 }
 
 void* _SimpleShearAnalytic_DefaultNew( Name name ) {
@@ -109,9 +109,9 @@ void* _SimpleShearAnalytic_DefaultNew( N
 }
 
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
-Index StgFEM_SimpleShearAnalytic_Register( PluginsManager* pluginsManager ) {
+Index StgFEM_SimpleShearAnalytic_Register( PluginsManager* pluginsManager  ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, SimpleShearAnalytic_Type, "0", _SimpleShearAnalytic_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, SimpleShearAnalytic_Type, (Name)"0", _SimpleShearAnalytic_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c
--- a/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c	Thu Jan 14 17:42:23 2010 +1100
@@ -61,7 +61,7 @@ void _LinearTemperatureField_AssignFromX
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data ); 
+	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"TemperatureField", FeVariable, True, data  ); 
 
 	AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, self->temperatureField, LinearTemperatureField_TemperatureFunction );
 }
@@ -95,7 +95,7 @@ void* _LinearTemperatureField_DefaultNew
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_LinearTemperatureField_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, LinearTemperatureField_Type, "0", _LinearTemperatureField_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, LinearTemperatureField_Type, (Name)"0", _LinearTemperatureField_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c
--- a/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -95,8 +95,8 @@ void ColumnViscosityAnalytic_Temperature
 	x = coord[ I_AXIS ] - min[ I_AXIS ];
 	y = coord[ J_AXIS ] - min[ J_AXIS ];
 
-	wavenumberX = Dictionary_GetInt_WithDefault( dictionary, "wavenumberX", 1 );
-	wavenumberY = Dictionary_GetInt_WithDefault( dictionary, "wavenumberY", 1 );
+	wavenumberX = Dictionary_GetInt_WithDefault( dictionary, (Dictionary_Entry_Key)"wavenumberX", 1  );
+	wavenumberY = Dictionary_GetInt_WithDefault( dictionary, (Dictionary_Entry_Key)"wavenumberY", 1 );
 
 	kx = wavenumberX * M_PI/ L;
 	ky = wavenumberY * M_PI;
@@ -105,7 +105,7 @@ void ColumnViscosityAnalytic_Temperature
 }
 
 void ColumnViscosityAnalytic_Constants( void* analyticSolution ) {
-	ColumnViscosityAnalytic* self = (ColumnViscosityAnalytic*) analyticSolution;
+	ColumnViscosityAnalytic* self = (ColumnViscosityAnalytic* ) analyticSolution;
 	double                  n, nx;
 	double t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t40;
 	double t41,t42,t43,t44,t45,t46,t47,t48,t49,t50,t51,t52,t53,t54,t55,t56,t57,t58,t59,t60,t61,t62,t63,t64,t65,t66,t67,t68,t69,t70,t71,t72,t73,t74,t75,t76,t77,t78,t79,t80;
@@ -2574,24 +2574,24 @@ void _ColumnViscosityAnalytic_AssignFrom
 	/* Construct Parent */
 	_AnalyticSolution_AssignFromXML( self, cf, data );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  ); 
 	
 	/* Create Analytic Fields */
-	self->velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
-	self->pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
-	self->stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False, data ); 
+	self->velocityField = Stg_ComponentFactory_ConstructByName( cf, (Name)"VelocityField", FeVariable, True, data  ); 
+	self->pressureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"PressureField", FeVariable, True, data  ); 
+	self->stressField = Stg_ComponentFactory_ConstructByName( cf, (Name)"StressField", FeVariable, False, data  ); 
 
 	/* Add condition function for temperature */
-	condFunc = ConditionFunction_New( ColumnViscosityAnalytic_TemperatureIC, "ColumnViscosityAnalytic_TemperatureIC" );
+	condFunc = ConditionFunction_New( ColumnViscosityAnalytic_TemperatureIC, (Name)"ColumnViscosityAnalytic_TemperatureIC"  );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
 
 	/* Set up constants */
-	self->ZA = Stg_ComponentFactory_GetRootDictDouble( cf, "leftViscosity", 1.0 );
-	self->ZB = Stg_ComponentFactory_GetRootDictDouble( cf, "rightViscosity", 1.0 );
+	self->ZA = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"leftViscosity", 1.0  );
+	self->ZB = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"rightViscosity", 1.0  );
 
 	/* top layer viscosity */
-	self->xc = Stg_ComponentFactory_GetRootDictDouble( cf, "columnEnd", 0.5 );
-	ColumnViscosityAnalytic_Constants( self );
+	self->xc = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"columnEnd", 0.5 );
+	ColumnViscosityAnalytic_Constants( self  );
 }
 
 void _ColumnViscosityAnalytic_Build( void* analyticSolution, void* data ) {
@@ -2631,7 +2631,7 @@ void* _ColumnViscosityAnalytic_DefaultNe
 }
 
 Index StgFEM_ColumnViscosityAnalytic_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, ColumnViscosityAnalytic_Type, "0", _ColumnViscosityAnalytic_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, ColumnViscosityAnalytic_Type, (Name)"0", _ColumnViscosityAnalytic_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/src/Finalise.c
--- a/Assembly/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -52,7 +52,7 @@
 #include <stdio.h>
 
 Bool StgFEM_Assembly_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	Stream_IndentBranch( StgFEM_Debug );
 	Stream_UnIndentBranch( StgFEM_Debug );
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/src/Init.c
--- a/Assembly/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -57,26 +57,26 @@ Bool StgFEM_Assembly_Init( int* argc, ch
 	Stg_ComponentRegister* componentRegister = Stg_ComponentRegister_Get_ComponentRegister();
 	int tmp;
 	
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
-	tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, "Context" ) );
-	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), 0 );
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), 0 );
 	Journal_Printf( /* DO NOT CHANGE OR REMOVE */
-		Journal_Register( InfoStream_Type, "Context" ), 
+		Journal_Register( InfoStream_Type, (Name)"Context"  ), 
 		"StGermain FEM Assembly Library revision %s. Copyright (C) 2003-2005 VPAC.\n", VERSION );
-	Stream_Flush( Journal_Register( InfoStream_Type, "Context" ) );
-	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), tmp );
+	Stream_Flush( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), tmp );
 	
 	/* initialise this level's streams */
 	StgFEM_Assembly_Debug = Stream_RegisterChild( StgFEM_Debug, "Assembly" );
 	
-	Stg_ComponentRegister_Add( componentRegister, ThermalBuoyancyForceTerm_Type, "0", _ThermalBuoyancyForceTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, GradientStiffnessMatrixTerm_Type, "0", _GradientStiffnessMatrixTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, DivergenceMatrixTerm_Type, "0", _DivergenceMatrixTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, LaplacianStiffnessMatrixTerm_Type, "0", _LaplacianStiffnessMatrixTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, IsoviscousStressTensorTerm_Type, "0", _IsoviscousStressTensorTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, PressureGradMatrixTerm_Type, "0", _PressureGradMatrixTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, PressureGradForceTerm_Type, "0", _PressureGradForceTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, MassMatrixTerm_Type, "0", _MassMatrixTerm_DefaultNew );
+	Stg_ComponentRegister_Add( componentRegister, ThermalBuoyancyForceTerm_Type, (Name)"0", _ThermalBuoyancyForceTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, GradientStiffnessMatrixTerm_Type, (Name)"0", _GradientStiffnessMatrixTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, DivergenceMatrixTerm_Type, (Name)"0", _DivergenceMatrixTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, LaplacianStiffnessMatrixTerm_Type, (Name)"0", _LaplacianStiffnessMatrixTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, IsoviscousStressTensorTerm_Type, (Name)"0", _IsoviscousStressTensorTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, PressureGradMatrixTerm_Type, (Name)"0", _PressureGradMatrixTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, PressureGradForceTerm_Type, (Name)"0", _PressureGradForceTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, MassMatrixTerm_Type, (Name)"0", _MassMatrixTerm_DefaultNew  );
 
 	RegisterParent( ThermalBuoyancyForceTerm_Type,     ForceTerm_Type );
 	RegisterParent( GradientStiffnessMatrixTerm_Type,  StiffnessMatrixTerm_Type );
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/src/IsoviscousStressTensorTerm.c
--- a/Assembly/src/IsoviscousStressTensorTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/src/IsoviscousStressTensorTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -132,7 +132,7 @@ void _IsoviscousStressTensorTerm_AssignF
 	/* Construct Parent */
 	_StiffnessMatrixTerm_AssignFromXML( self, cf, data );
 
-	_IsoviscousStressTensorTerm_Init( self, Stg_ComponentFactory_GetDouble( cf, self->name, "viscosity", 1.0 ) );
+	_IsoviscousStressTensorTerm_Init( self, Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"viscosity", 1.0 )  );
 }
 
 void _IsoviscousStressTensorTerm_Build( void* matrixTerm, void* data ) {
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/src/MassMatrixTerm.c
--- a/Assembly/src/MassMatrixTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/src/MassMatrixTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -133,7 +133,7 @@ void _MassMatrixTerm_AssignFromXML( void
     /* Construct Parent */
     _StiffnessMatrixTerm_AssignFromXML( self, cf, data );
 
-    field = Stg_ComponentFactory_ConstructByKey( cf, self->name, "field", FeVariable, True, data ) ;
+    field = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"field", FeVariable, True, data  ) ;
 
     _MassMatrixTerm_Init( self, field );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/src/PressureGradForceTerm.c
--- a/Assembly/src/PressureGradForceTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/src/PressureGradForceTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -152,8 +152,8 @@ void _PressureGradForceTerm_AssignFromXM
 
 	_PressureGradForceTerm_Init(
 		self, 
-		Stg_ComponentFactory_ConstructByKey( cf, self->name, "PressureField", FeVariable, True, data ),
-		Stg_ComponentFactory_ConstructByKey( cf, self->name, "PressureGradField", FeVariable, True, data ) );
+		Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"PressureField", FeVariable, True, data  ),
+		Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"PressureGradField", FeVariable, True, data )  );
 }
 
 void _PressureGradForceTerm_Build( void* forceTerm, void* data ) {
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/src/PressureGradMatrixTerm.c
--- a/Assembly/src/PressureGradMatrixTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/src/PressureGradMatrixTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -144,7 +144,7 @@ void _PressureGradMatrixTerm_AssignFromX
 	/* Construct Parent */
 	_StiffnessMatrixTerm_AssignFromXML( self, cf, data );
 
-	gradField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "PressureGradField", FeVariable, True, data ) ;
+	gradField = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"PressureGradField", FeVariable, True, data  ) ;
 
 	_PressureGradMatrixTerm_Init( self, gradField );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/src/ThermalBuoyancyForceTerm.c
--- a/Assembly/src/ThermalBuoyancyForceTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/src/ThermalBuoyancyForceTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -143,8 +143,8 @@ void _ThermalBuoyancyForceTerm_AssignFro
 	/* Construct Parent */
 	_ForceTerm_AssignFromXML( self, cf, data );
 
-	temperatureField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "TemperatureField", FeVariable, True, data ) ;
-	rayleighNumber   = Stg_ComponentFactory_GetDouble( cf, self->name, "Ra", 0.0 );
+	temperatureField = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"TemperatureField", FeVariable, True, data  ) ;
+	rayleighNumber   = Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"Ra", 0.0  );
 
 	_ThermalBuoyancyForceTerm_Init( self, temperatureField, rayleighNumber );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 Assembly/tests/IsoviscousStiffnessSuite.c
--- a/Assembly/tests/IsoviscousStiffnessSuite.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Assembly/tests/IsoviscousStiffnessSuite.c	Thu Jan 14 17:42:23 2010 +1100
@@ -36,25 +36,25 @@ void IsoviscousStiffness2D( IsoviscousSt
 	char							*filename, *matrixName;
 	double						tolerance;
 	char							xml_input[PCU_PATH_MAX];
-	Stream*						infoStream = Journal_Register( Info_Type, CURR_MODULE_NAME );
+	Stream*						infoStream = Journal_Register( Info_Type, (Name)CURR_MODULE_NAME );
 	char							rFile[PCU_PATH_MAX];
 	int							err;
 
 	pcu_docstring( "This test compares a Stiffness matrix against a previously generated stiffness matrix"
 		"The stiffness matrix is generated from a 2D FEM model for an isoviscous fluid flow." 
-		"See testIsoviscous.xml for the actual xml used"	);
+		"See testIsoviscous.xml for the actual xml used"	 );
 
 	/* read in the xml input file */
 	pcu_filename_input( "IsoviscousStiffnessMatrix.xml", xml_input );
 	cf = stgMainInitFromXML( xml_input, MPI_COMM_WORLD, NULL );
-	context = (FiniteElementContext*)LiveComponentRegister_Get( cf->LCRegister, "context" );
+	context = (FiniteElementContext*)LiveComponentRegister_Get( cf->LCRegister, (Name)"context" );
 	data->context = context;
 	dictionary = context->dictionary;
 
 	stgMainBuildAndInitialise( cf );
 
 	/* Test is to check the relative error between an
-		 1) expected stiffness matrix, (made years ago)
+		 1 ) expected stiffness matrix, (made years ago)
 		 2) the current stiffness matrix.
 
 		 both matricies are built using only an Arrhenius rheology 
@@ -64,15 +64,15 @@ void IsoviscousStiffness2D( IsoviscousSt
 	tolerance = Dictionary_GetDouble( dictionary, "StiffnessMatrixCompareTolerance" );
 
 	/* Get Matrix */
-	matrixName = Dictionary_GetString( dictionary, "CompareStiffnessMatrix" );
+	matrixName = Dictionary_GetString( dictionary, (Dictionary_Entry_Key)"CompareStiffnessMatrix"  );
 	Journal_Printf( infoStream, "Comparing stiffness matrix '%s'\n", matrixName );
-	stiffnessMatrix = (StiffnessMatrix*) LiveComponentRegister_Get( context->CF->LCRegister, matrixName );
-	assert( stiffnessMatrix );
+	stiffnessMatrix = (StiffnessMatrix*) LiveComponentRegister_Get( context->CF->LCRegister, (Name)matrixName );
+	assert( stiffnessMatrix  );
 
 	StiffnessMatrix_Assemble( stiffnessMatrix, False, NULL, context );
 
 	/* Get Stored Matrix from file */
-	filename = Dictionary_GetString( dictionary, "StiffnessMatrixCompareFilename" );
+	filename = Dictionary_GetString( dictionary, (Dictionary_Entry_Key)"StiffnessMatrixCompareFilename"  );
 	Journal_Printf( infoStream, "Checking with file '%s'\n", filename );
 
 	pcu_filename_expected( filename, expected_file );
@@ -91,7 +91,7 @@ void IsoviscousStiffness2D( IsoviscousSt
 
 	/* Check tolerance */
 	/*
-	stream = Journal_Register( Info_Type, "StiffnessMatrixComparison" );
+	stream = Journal_Register( Info_Type, (Name)"StiffnessMatrixComparison"  );
 	Stream_RedirectFile_WithPrependedPath( stream, context->outputPath, "StiffnessMatrixCompare.dat" );
 	Journal_PrintValue( infoStream, tolerance );
 	Journal_Printf( stream, "Comparison between stiffness matrix '%s' %s with tolerance %4g.\n", 
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/AnalyticSolution.c
--- a/Discretisation/src/AnalyticSolution.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/AnalyticSolution.c	Thu Jan 14 17:42:23 2010 +1100
@@ -164,12 +164,12 @@ void _AnalyticSolution_AssignFromXML( vo
 	Swarm*            integrationSwarm;
 	Bool              verboseMode;
 
-	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", DomainContext, False, data );
-	if( !context )
-		context = Stg_ComponentFactory_ConstructByName( cf, "context", DomainContext, True, data );
+	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", DomainContext, False, data );
+	if( !context  )
+		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", DomainContext, True, data  );
 
-	integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, "gaussSwarm", Swarm, True, data ); 
-	verboseMode = Stg_ComponentFactory_GetRootDictBool( cf, "analyticSolutionVerbose", False );
+	integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, (Name)"gaussSwarm", Swarm, True, data  ); 
+	verboseMode = Stg_ComponentFactory_GetRootDictBool( cf, (Dictionary_Entry_Key)"analyticSolutionVerbose", False  );
 
 	_AnalyticSolution_Init( self, integrationSwarm, cf->LCRegister, context, verboseMode );
 }
@@ -358,13 +358,13 @@ void AnalyticSolution_TestAll( void* ana
 
 void AnalyticSolution_RegisterFeVariableWithAnalyticFunction( void* analyticSolution, FeVariable* feVariable, AnalyticSolution_SolutionFunction* solutionFunction) {
 	AnalyticSolution* self    = (AnalyticSolution*) analyticSolution;
-	char*             tmpName = Stg_Object_AppendSuffix( feVariable, "Analytic" );
+	char*             tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"Analytic"  );
 
 	/* Add feVariable to list */
 	Stg_ObjectList_Append( self->feVariableList, feVariable );
 	/* Add function to list */
-	Stg_ObjectList_GlobalPointerAppend( self->analyticFeVariableFuncList, solutionFunction, tmpName );
-	Memory_Free( tmpName );	
+	Stg_ObjectList_GlobalPointerAppend( self->analyticFeVariableFuncList, solutionFunction, (Name)tmpName );
+	Memory_Free( tmpName  );	
 }
 
 
@@ -372,8 +372,8 @@ FeVariable* AnalyticSolution_RegisterFeV
 	AnalyticSolution* self    = (AnalyticSolution*) analyticSolution;
 	FeVariable*       field;
 
-	field = Stg_ComponentFactory_ConstructByName( cf, fieldName, FeVariable, isEssential, data ); 
-	if ( field )
+	field = Stg_ComponentFactory_ConstructByName( cf, (Name)fieldName, FeVariable, isEssential, data ); 
+	if ( field  )
 		AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, field, solutionFunction );
 
 	return field;
@@ -383,7 +383,7 @@ void AnalyticSolution_BuildAllAnalyticFi
 void AnalyticSolution_BuildAllAnalyticFields( void* analyticSolution, void* data ) {
 	AnalyticSolution* self       = (AnalyticSolution*) analyticSolution;
 	FeVariable*       feVariable = NULL;
-	Stream*           errStream  = Journal_Register( Error_Type, "AnalyticSolution" );
+	Stream*           errStream  = Journal_Register( Error_Type, (Name)"AnalyticSolution"  );
 	unsigned          feVar_I, feVarCount;
 
 	feVarCount = Stg_ObjectList_Count( self->feVariableList );
@@ -440,8 +440,8 @@ FeVariable* AnalyticSolution_CreateAnaly
 	Stg_Component_Build( feVariable->feMesh, NULL, False );
 
 	/* Create new data Variable */
-	tmpName = Stg_Object_AppendSuffix( feVariable, "Analytic-DataVariable" );
-	if ( scalar ) {
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"Analytic-DataVariable" );
+	if ( scalar  ) {
 		Sync*	sync;
 
 		sync = Mesh_GetSync( feVariable->feMesh, MT_VERTEX );
@@ -490,7 +490,7 @@ FeVariable* AnalyticSolution_CreateAnaly
 	dataVariable->allocateSelf = True;
 	
 	/* Create new dof layout */
-	tmpName = Stg_Object_AppendSuffix( feVariable, "Analytic-DofLayout" );
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"Analytic-DofLayout"  );
 	dofLayout = DofLayout_New( tmpName, self->context, variable_Register, Mesh_GetDomainSize( feVariable->feMesh, MT_VERTEX ), NULL );
 	if ( scalar ) {
 		DofLayout_AddAllFromVariableArray( dofLayout, 1, &dataVariable );
@@ -513,7 +513,7 @@ FeVariable* AnalyticSolution_CreateAnaly
 	Memory_Free( tmpName );
 
 	/* Create new FeVariable */
-	tmpName = Stg_Object_AppendSuffix( feVariable, "Analytic" );
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"Analytic"  );
 	analyticFeVariable = FeVariable_New( tmpName, self->context, feVariable->feMesh, feVariable->geometryMesh, dofLayout,
 		NULL, NULL, NULL, feVariable->dim, feVariable->isCheckpointedAndReloaded, 
 		False, False,
@@ -523,31 +523,31 @@ FeVariable* AnalyticSolution_CreateAnaly
 	Stg_ObjectList_Append( self->analyticFeVariableList, analyticFeVariable );
 
 	/* Create Magnitude Field */
-	tmpName = Stg_Object_AppendSuffix( analyticFeVariable, "Magnitude" );
+	tmpName = Stg_Object_AppendSuffix( analyticFeVariable, (Name)"Magnitude"  );
 	analyticMagField = OperatorFeVariable_NewUnary( tmpName, self->context, analyticFeVariable, "Magnitude" );
 	Memory_Free( tmpName );
 
 	/* Create Error field - The the calculated field minus the analytic field */
-	tmpName = Stg_Object_AppendSuffix( feVariable, "ErrorField" );
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"ErrorField"  );
 	errorField = OperatorFeVariable_NewBinary( tmpName, self->context, feVariable, analyticFeVariable, "Subtraction" );
 	Memory_Free( tmpName );
 	
 	/* Create Error magnitude field */
-	tmpName = Stg_Object_AppendSuffix( feVariable, "ErrorMagnitudeField" );
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"ErrorMagnitudeField"  );
 	errorMagnitudeField = OperatorFeVariable_NewUnary( tmpName, self->context, errorField, "Magnitude" );
 	Memory_Free( tmpName );
 	Stg_ObjectList_Append( self->errorMagnitudeFieldList, errorMagnitudeField ); /* Add it to list */
 
 	/* Create Relative Error magnitude field - The magnitude of relative error */
-	tmpName = Stg_Object_AppendSuffix( feVariable, "RelativeErrorMagnitudeField" );
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"RelativeErrorMagnitudeField"  );
 	relativeErrorMagnitudeField = OperatorFeVariable_NewBinary( tmpName, self->context, errorMagnitudeField, analyticMagField, "ScalarDivision" );
 	Memory_Free( tmpName );
 	Stg_ObjectList_Append( self->relativeErrorMagnitudeFieldList, relativeErrorMagnitudeField ); /* Add it to list */
 
 	/* Create Stream for field to dump error information to */
-	tmpName = Stg_Object_AppendSuffix( feVariable, "ErrorFile" );
-	stream = Journal_Register( Dump_Type, tmpName );
-	Stg_ObjectList_GlobalPointerAppend( self->streamList, stream, tmpName );
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"ErrorFile"  );
+	stream = Journal_Register( Dump_Type, (Name)tmpName  );
+	Stg_ObjectList_GlobalPointerAppend( self->streamList, stream, (Name)tmpName  );
 	Stream_Enable( stream, True );
 	Stream_RedirectFile_WithPrependedPath( stream, self->context->outputPath, tmpName );
 	Memory_Free( tmpName );
@@ -555,9 +555,9 @@ FeVariable* AnalyticSolution_CreateAnaly
 	/* Get tolerance from dictionary */
 	count = Stg_ObjectList_Count( self->analyticFeVariableList );
 	self->toleranceList = Memory_Realloc_Array( self->toleranceList, double, count );
-	tmpName = Stg_Object_AppendSuffix( feVariable, "Tolerance" );
-	self->toleranceList[ count - 1 ] = Dictionary_GetDouble_WithDefault( self->context->dictionary, tmpName, 0.0 );
-	Memory_Free( tmpName );
+	tmpName = Stg_Object_AppendSuffix( feVariable, (Name)"Tolerance"  );
+	self->toleranceList[ count - 1 ] = Dictionary_GetDouble_WithDefault( self->context->dictionary, (Dictionary_Entry_Key)tmpName, 0.0 );
+	Memory_Free( tmpName  );
 
 	/* Add components to LiveComponentRegister so they will be visible to other components 
 	 * and will be built, initialised and  deleted */
@@ -591,11 +591,11 @@ FeVariable* AnalyticSolution_CreateAnaly
 	analyticVectorField = AnalyticSolution_CreateAnalyticField( self, vectorField );
 
 	/* Create new dof layout */
-	tmpName = Stg_Object_AppendSuffix( analyticVectorField, "Analytic-DofLayout" );
+	tmpName = Stg_Object_AppendSuffix( analyticVectorField, (Name)"Analytic-DofLayout"  );
 	dofLayout = DofLayout_New( tmpName, self->context, self->context->variable_Register, Mesh_GetDomainSize( analyticVectorField->feMesh, MT_VERTEX ), NULL );
 
 	/* Create Invariant Field */
-	tmpName2 = Stg_Object_AppendSuffix( analyticVectorField, "Invariant" );
+	tmpName2 = Stg_Object_AppendSuffix( analyticVectorField, (Name)"Invariant"  );
 	analyticVectorInvField = OperatorFeVariable_NewUnary( tmpName2, self->context, analyticVectorField, "SymmetricTensor_Invariant" );
 
 	Memory_Free( tmpName );
@@ -632,7 +632,7 @@ InterpolationResult AnalyticSolution_Int
 }
 
 AnalyticSolution* AnalyticSolution_GetAnalyticSolution() {
-	Journal_Firewall( mySingleton != NULL , Journal_Register( Error_Type, "AnalyticSolution" ),
+	Journal_Firewall( mySingleton != NULL , Journal_Register( Error_Type, (Name)"AnalyticSolution"  ),
 		"Error in function %s: The Singleton Ptr is NULL, meaning the AnalyticSolution has not been created yet\n", __func__ );
 
 	return mySingleton;
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/BilinearElementType.c
--- a/Discretisation/src/BilinearElementType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/BilinearElementType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -119,7 +119,7 @@ void _BilinearElementType_Init( Bilinear
 		self->elLocalLength[dim_I] = self->maxElLocalCoord[dim_I] - self->minElLocalCoord[dim_I];
 	}
 
-	self->triInds = Memory_Alloc_2DArray( unsigned, dim, 3, "BilinearElementType::triInds" );
+	self->triInds = Memory_Alloc_2DArray( unsigned, dim, 3, (Name)"BilinearElementType::triInds" );
 	self->triInds[0][0] = 0; self->triInds[0][1] = 1; self->triInds[0][2] = 2;
 	self->triInds[1][0] = 1; self->triInds[1][1] = 3; self->triInds[1][2] = 2;
 }
@@ -128,7 +128,7 @@ void _BilinearElementType_Delete( void* 
 	BilinearElementType* self = (BilinearElementType*)elementType;
 
 	/* Stg_Class_Delete parent */
-	_ElementType_Delete( self );
+	_ElementType_Delete( self  );
 }
 
 void _BilinearElementType_Print( void* elementType, Stream* stream ) {
@@ -167,7 +167,7 @@ void _BilinearElementType_Initialise( vo
 void _BilinearElementType_Initialise( void* elementType, void *data ){
 	BilinearElementType*	self	= (BilinearElementType*) elementType;
 
-	self->faceNodes = Memory_Alloc_2DArray( unsigned, 4, 2, "node indices for element faces" );
+	self->faceNodes = Memory_Alloc_2DArray( unsigned, 4, 2, (Name)"node indices for element faces"  );
 
 	self->faceNodes[0][0] = 0; self->faceNodes[0][1] = 1;
 	self->faceNodes[1][0] = 2; self->faceNodes[1][1] = 3;
@@ -194,7 +194,7 @@ void _BilinearElementType_Build( void* e
 	BilinearElementType*	self	= (BilinearElementType*) elementType;
 
 	self->evaluatedShapeFunc = Memory_Alloc_Array( double, self->nodeCount, "evaluatedShapeFuncs" );
-	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, "localShapeFuncDerivitives" );
+	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, (Name)"localShapeFuncDerivitives"  );
 }
 
 /*
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/BilinearInnerElType.c
--- a/Discretisation/src/BilinearInnerElType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/BilinearInnerElType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -117,7 +117,7 @@ void _BilinearInnerElType_Init( Bilinear
 		self->elLocalLength[dim_I] = self->maxElLocalCoord[dim_I] - self->minElLocalCoord[dim_I];
 	}
 
-	self->triInds = Memory_Alloc_2DArray( unsigned, 2, 3, "BilinearInnerElType::triInds" );
+	self->triInds = Memory_Alloc_2DArray( unsigned, 2, 3, (Name)"BilinearInnerElType::triInds" );
 	self->triInds[0][0] = 0; self->triInds[0][1] = 1; self->triInds[0][2] = 2;
 	self->triInds[1][0] = 1; self->triInds[1][1] = 3; self->triInds[1][2] = 2;
 }
@@ -126,7 +126,7 @@ void _BilinearInnerElType_Delete( void* 
 	BilinearInnerElType* self = (BilinearInnerElType*)elementType;
 
 	/* Stg_Class_Delete parent */
-	_ElementType_Delete( self );
+	_ElementType_Delete( self  );
 }
 
 void _BilinearInnerElType_Print( void* elementType, Stream* stream ) {
@@ -223,7 +223,7 @@ void _BilinearInnerElType_SF_allLocalDer
 }
 
 int _BilinearInnerElType_SurfaceNormal( void* elementType, unsigned element_I, unsigned dim, double* xi, double* norm ) {
-	Stream*	errStream = Journal_Register( ErrorStream_Type, ElementType_Type );
+	Stream*	errStream = Journal_Register( ErrorStream_Type, (Name)ElementType_Type  );
 
 	Journal_Printf( errStream, "surface normal function not yet implemented for this element type.\n" );
 	assert( 0 );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/Biquadratic.c
--- a/Discretisation/src/Biquadratic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/Biquadratic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -112,7 +112,7 @@ void _Biquadratic_Print( void* elementTy
 	
 	/* Set the Journal for printing informations */
 	Stream* elementTypeStream;
-	elementTypeStream = Journal_Register( InfoStream_Type, "BiquadraticStream" );
+	elementTypeStream = Journal_Register( InfoStream_Type, (Name)"BiquadraticStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "Biquadratic (ptr): (%p)\n", self );
@@ -128,7 +128,7 @@ void _Biquadratic_Initialise( void* elem
 void _Biquadratic_Initialise( void* elementType, void* data ) {
 	Biquadratic*	self = (Biquadratic*)elementType;
 
-	self->faceNodes = Memory_Alloc_2DArray( unsigned, 4, 3, "node indices for element faces" );
+	self->faceNodes = Memory_Alloc_2DArray( unsigned, 4, 3, (Name)"node indices for element faces"  );
 
 	self->faceNodes[0][0] = 0; self->faceNodes[0][1] = 1; self->faceNodes[0][2] = 2;
 	self->faceNodes[1][0] = 6; self->faceNodes[1][1] = 7; self->faceNodes[1][2] = 8;
@@ -136,7 +136,7 @@ void _Biquadratic_Initialise( void* elem
 	self->faceNodes[3][0] = 2; self->faceNodes[3][1] = 5; self->faceNodes[3][2] = 8;
 
 	self->evaluatedShapeFunc = Memory_Alloc_Array( double, self->nodeCount, "evaluatedShapeFuncs" );
-	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, "localShapeFuncDerivatives" );
+	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, (Name)"localShapeFuncDerivatives"  );
 }
 
 void _Biquadratic_Execute( void* elementType, void* data ) {
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/C0Generator.c
--- a/Discretisation/src/C0Generator.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/C0Generator.c	Thu Jan 14 17:42:23 2010 +1100
@@ -107,7 +107,7 @@ void _C0Generator_Print( void* generator
 	
 	/* Set the Journal for printing informations */
 	Stream* generatorStream;
-	generatorStream = Journal_Register( InfoStream_Type, "C0GeneratorStream" );
+	generatorStream = Journal_Register( InfoStream_Type, (Name)"C0GeneratorStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "C0Generator (ptr): (%p)\n", self );
@@ -123,7 +123,7 @@ void _C0Generator_AssignFromXML( void* g
 
 	_MeshGenerator_AssignFromXML( self, cf, data );
 
-	elMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "elementMesh", Mesh, True, data );
+	elMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"elementMesh", Mesh, True, data  );
 	C0Generator_SetElementMesh( self, elMesh );
 }
 
@@ -155,11 +155,11 @@ void C0Generator_Generate( void* generat
 	C0Generator_BuildElementTypes( self, mesh );
 
 	elGrid = *(Grid**)ExtensionManager_Get( self->elMesh->info, self->elMesh, 
-					       ExtensionManager_GetHandle( self->elMesh->info, "elementGrid" ) );
-	ExtensionManager_Add( mesh->info, "elementGrid", sizeof(Grid*) );
-	grid = (Grid**)ExtensionManager_Get( mesh->info, mesh, 
-					     ExtensionManager_GetHandle( mesh->info, "elementGrid" ) );
-	*grid = Grid_New();
+					       ExtensionManager_GetHandle( self->elMesh->info, (Name)"elementGrid" )  );
+	ExtensionManager_Add( mesh->info, (Name)"elementGrid", sizeof(Grid*) );
+	grid = (Grid** )ExtensionManager_Get( mesh->info, mesh, 
+					     ExtensionManager_GetHandle( mesh->info, (Name)"elementGrid" ) );
+	*grid = Grid_New( );
 	Grid_SetNumDims( *grid, elGrid->nDims );
 	Grid_SetSizes( *grid, elGrid->sizes );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/C2Generator.c
--- a/Discretisation/src/C2Generator.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/C2Generator.c	Thu Jan 14 17:42:23 2010 +1100
@@ -117,9 +117,9 @@ void _C2Generator_Print( void* meshGener
 	
 	/* Set the Journal for printing informations */
 	Stream* meshGeneratorStream;
-	meshGeneratorStream = Journal_Register( InfoStream_Type, "C2GeneratorStream" );
+	meshGeneratorStream = Journal_Register( InfoStream_Type, (Name)"C2GeneratorStream" );
 
-	assert( self );
+	assert( self  );
 
 	/* Print parent */
 	Journal_Printf( stream, "C2Generator (ptr): (%p)\n", self );
@@ -166,7 +166,7 @@ void C2Generator_SetTopologyParams( void
 
 void C2Generator_GenElementVertexInc( void* meshGenerator, IGraph* topo, Grid*** grids ) {
 	C2Generator*	self = (C2Generator*)meshGenerator;
-	Stream*		stream = Journal_Register( Info_Type, self->type );
+	Stream*		stream = Journal_Register( Info_Type, (Name)self->type  );
 	unsigned*	incEls;
 	unsigned*	dimInds;
 	unsigned	vertsPerEl;
@@ -287,7 +287,7 @@ void C2Generator_GenFaceVertexInc( void*
 	unsigned	verts[9];
 	unsigned*	dimInds		= Memory_Alloc_Array( unsigned, topo->nDims, "edgeDimensionIndices" );
 
-	stream = Journal_Register( Info_Type, self->type );
+	stream = Journal_Register( Info_Type, (Name)self->type  );
 	Journal_Printf( stream, "Generating face-vertex types...\n" );
 	Stream_Indent( stream );
 
@@ -397,7 +397,7 @@ void C2Generator_GenEdgeVertexInc( void*
 	unsigned	verts[3];
 	unsigned*	dimInds		= Memory_Alloc_Array( unsigned, topo->nDims, "edgeDimensionIndices" );
 
-	stream = Journal_Register( Info_Type, self->type );
+	stream = Journal_Register( Info_Type, (Name)self->type  );
 	Journal_Printf( stream, "Generating edge-vertex incidence...\n" );
 	Stream_Indent( stream );
 
@@ -471,7 +471,7 @@ void C2Generator_GenElementTypes( void* 
 
 	assert( self );
 
-	stream = Journal_Register( Info_Type, self->type );
+	stream = Journal_Register( Info_Type, (Name)self->type  );
 	Journal_Printf( stream, "Generating element types...\n" );
 	Stream_Indent( stream );
 
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/ConstantElementType.c
--- a/Discretisation/src/ConstantElementType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/ConstantElementType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -177,7 +177,7 @@ void _ConstantElementType_SF_allLocalDer
 void _ConstantElementType_SF_allLocalDerivs_allNodes( void* elementType, const double localCoord[],
 		double** const evaluatedDerivatives )
 {		
-	Stream* error = Journal_Register( ErrorStream_Type, ConstantElementType_Type );
+	Stream* error = Journal_Register( ErrorStream_Type, (Name)ConstantElementType_Type  );
 	/* all derivatives are zero*/
 	Journal_Printf( error, "Error: Trying take derivative of a constant shape function \n" );
 	assert( 0 );
@@ -196,7 +196,7 @@ void _ConstantElementType_ConvertGlobalC
 }
 
 int _ConstantElementType_SurfaceNormal( void* elementType, unsigned element_I, unsigned dim, double* xi, double* normal ) {
-	Stream*	errStream	= Journal_Register( ErrorStream_Type, ElementType_Type );
+	Stream*	errStream	= Journal_Register( ErrorStream_Type, (Name)ElementType_Type  );
 
 	Journal_Printf( errStream, "surface normal not defined for this element type.\n" );
 	assert( 0 );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/ElementType.c
--- a/Discretisation/src/ElementType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/ElementType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -150,9 +150,9 @@ double _ElementType_JacobianDeterminantS
 						unsigned face_I, unsigned norm ) 
 {
 	ElementType*	self;
-	Stream*			error = Journal_Register( ErrorStream_Type, ElementType_Type );
+	Stream*			error = Journal_Register( ErrorStream_Type, (Name)ElementType_Type );
 
-	self = (ElementType*) elementType;
+	self = (ElementType* ) elementType;
 
 	Journal_Printf( error, "Error: the jacobian for this element type cannot be evaluated on the element surface" );
 	Journal_Printf( error, "(perhaps because the nodes are defined internally for the element).\n" );
@@ -514,7 +514,7 @@ void ElementType_Jacobian_AxisIndependen
 	/* If GNi isn't passed in - then evaluate them for you */
 	if (_GNi == NULL) {
 		/* Using 3 here instead of dim so that you can pass in dim = 2 and use axes 0 and 2 for your jacobian */
-		GNi = Memory_Alloc_2DArray( double, 3, nodesPerEl, "Temporary GNi" );
+		GNi = Memory_Alloc_2DArray( double, 3, nodesPerEl, (Name)"Temporary GNi"  );
 		self->_evaluateShapeFunctionLocalDerivsAt( self, xi, GNi );
 	}
 	else GNi = _GNi;
@@ -602,7 +602,7 @@ double ElementType_JacobianDeterminant_A
 	double detJac;
 
 	/* Using 3 here instead of dim so that you can pass in dim = 2 and use axes 0 and 2 for your jacobian */
-	jacobian = Memory_Alloc_2DArray( double, 3, 3, "Temporary Jacobian" );
+	jacobian = Memory_Alloc_2DArray( double, 3, 3, (Name)"Temporary Jacobian"  );
 
 	ElementType_Jacobian_AxisIndependent( elementType, _mesh, elId, xi, dim, jacobian, NULL, A_axis, B_axis, C_axis );
 	detJac = StGermain_MatrixDeterminant_AxisIndependent( jacobian, dim, A_axis, B_axis, C_axis );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/ElementType_Register.c
--- a/Discretisation/src/ElementType_Register.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/ElementType_Register.c	Thu Jan 14 17:42:23 2010 +1100
@@ -155,9 +155,9 @@ void _ElementType_Register_AssignFromXML
 void _ElementType_Register_AssignFromXML( void* elementType_Register, Stg_ComponentFactory *cf, void* data ){
 	ElementType_Register*	self = (ElementType_Register*)elementType_Register;
 	
-	self->context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", DomainContext, False, data );
-	if( !self->context ) 
-		self->context = Stg_ComponentFactory_ConstructByName( cf, "context", DomainContext, True, data );
+	self->context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", DomainContext, False, data );
+	if( !self->context  ) 
+		self->context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", DomainContext, True, data  );
 }
 	
 void _ElementType_Register_Build( void* elementType_Register, void *data ){
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/FeEquationNumber.c
--- a/Discretisation/src/FeEquationNumber.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/FeEquationNumber.c	Thu Jan 14 17:42:23 2010 +1100
@@ -769,7 +769,7 @@ void _FeEquationNumber_BuildDestinationA
    Index critPointsIHaveTotal = 0;
    CritPointInfo* critPointsToSend = NULL;
    Index critPointsToSendTotal = 0;
-   Stream* errorStream = Journal_Register( Error_Type, self->type );
+   Stream* errorStream = Journal_Register( Error_Type, (Name)self->type  );
 
    Journal_DPrintfL( self->debug, 1, "In %s:\n",  __func__ );
    Stream_IndentBranch( StgFEM_Debug );
@@ -1597,8 +1597,8 @@ static void _FeEquationNumber_HandleNode
 	
    Journal_DPrintfL( self->debug, 3, "In %s:",  __func__ );
 /*#if DEBUG*/
-   error = Journal_Register( Error_Type, self->type );
-   Journal_Firewall( (dNode_I < self->feMesh->nodeDomainCount), error, "Stuffup: %s() asked to operate on node %d, bigger "
+   error = Journal_Register( Error_Type, (Name)self->type );
+   Journal_Firewall( (dNode_I < self->feMesh->nodeDomainCount ), error, "Stuffup: %s() asked to operate on node %d, bigger "
                      "than domain count %d. Exiting.\n", __func__, dNode_I, self->feMesh->nodeDomainCount );
 /*#endif*/
 	
@@ -2364,7 +2364,7 @@ void FeEquationNumber_BuildWithTopology(
 
    inc = IArray_New();
 
-   stream = Journal_Register( Info_Type, self->type );
+   stream = Journal_Register( Info_Type, (Name)self->type  );
    Stream_SetPrintingRank( stream, 0 );
 
    Journal_RPrintf( stream, "FeEquationNumber: '%s'\n", self->name );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/FeMesh.c
--- a/Discretisation/src/FeMesh.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/FeMesh.c	Thu Jan 14 17:42:23 2010 +1100
@@ -90,7 +90,7 @@ void _FeMesh_Init( FeMesh* self, Element
 
 	assert( self && Stg_CheckType( self, FeMesh ) );
 
-	stream = Journal_Register( Info_Type, self->type );
+	stream = Journal_Register( Info_Type, (Name)self->type  );
 	Stream_SetPrintingRank( stream, 0 );
 
 	self->feElType = elType;
@@ -122,7 +122,7 @@ void _FeMesh_Print( void* feMesh, Stream
 	
 	/* Set the Journal for printing informations */
 	Stream* feMeshStream;
-	feMeshStream = Journal_Register( InfoStream_Type, "FeMeshStream" );
+	feMeshStream = Journal_Register( InfoStream_Type, (Name)"FeMeshStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "FeMesh (ptr): (%p)\n", self );
@@ -136,8 +136,8 @@ void _FeMesh_AssignFromXML( void* feMesh
 
 	_Mesh_AssignFromXML( self, cf, data );
 
-	_FeMesh_Init( self, NULL, Stg_ComponentFactory_GetString( cf, self->name, "elementType", "linear" ), 
-		Stg_ComponentFactory_GetBool( cf, self->name, "isElementMesh", False ) );
+	_FeMesh_Init( self, NULL, Stg_ComponentFactory_GetString( cf, self->name, (Dictionary_Entry_Key)"elementType", "linear"  ), 
+		Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"isElementMesh", False )  );
 }
 
 void _FeMesh_Build( void* feMesh, void* data ) {
@@ -147,7 +147,7 @@ void _FeMesh_Build( void* feMesh, void* 
 
 	assert( self );
 
-	stream = Journal_Register( Info_Type, self->type );
+	stream = Journal_Register( Info_Type, (Name)self->type  );
 
 	_Mesh_Build( self, data );
 
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/FeMesh_Algorithms.c
--- a/Discretisation/src/FeMesh_Algorithms.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/FeMesh_Algorithms.c	Thu Jan 14 17:42:23 2010 +1100
@@ -108,7 +108,7 @@ void _FeMesh_Algorithms_Print( void* alg
 	
 	/* Set the Journal for printing informations */
 	Stream* algorithmsStream;
-	algorithmsStream = Journal_Register( InfoStream_Type, "FeMesh_AlgorithmsStream" );
+	algorithmsStream = Journal_Register( InfoStream_Type, (Name)"FeMesh_AlgorithmsStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "FeMesh_Algorithms (ptr): (%p)\n", self );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/FeMesh_ElementType.c
--- a/Discretisation/src/FeMesh_ElementType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/FeMesh_ElementType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -100,7 +100,7 @@ void _FeMesh_ElementType_Print( void* el
 	FeMesh_ElementType*	self = (FeMesh_ElementType*)elementType;
 	Stream*			elementTypeStream;
 
-	elementTypeStream = Journal_Register( InfoStream_Type, "FeMesh_ElementTypeStream" );
+	elementTypeStream = Journal_Register( InfoStream_Type, (Name)"FeMesh_ElementTypeStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "FeMesh_ElementType (ptr): (%p)\n", self );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/FeSwarmVariable.c
--- a/Discretisation/src/FeSwarmVariable.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/FeSwarmVariable.c	Thu Jan 14 17:42:23 2010 +1100
@@ -122,7 +122,7 @@ void _FeSwarmVariable_AssignFromXML( voi
 
 	_SwarmVariable_AssignFromXML( self, cf, data );
 
-	_FeSwarmVariable_Init( self, Stg_ComponentFactory_ConstructByKey( cf, self->name, "FeVariable", FeVariable, True, data ) );
+	_FeSwarmVariable_Init( self, Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"FeVariable", FeVariable, True, data )  );
 }
 
 void _FeSwarmVariable_Build( void* swarmVariable, void* data ) {
@@ -154,7 +154,7 @@ void _FeSwarmVariable_ValueAt( void* swa
 
 	/* check if the swarm is using a GlobalCoordSystem, if not FAIL */
 	Journal_Firewall( (swarm->particleLayout->coordSystem == GlobalCoordSystem), 
-		Journal_Register( Error_Type, "FeSwarmVariable" ),
+		Journal_Register( Error_Type, (Name)"FeSwarmVariable"  ),
 			"Error in function %s: FeSwarmVariables require swarms with GlobalCoordSystems\n"
 			"This FeSwarmVariable, %s, uses the swarm %s, which doesn't have a GlobalCoordSystem\n",
 			__func__, self->name, swarm->name );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/FeVariable.c
--- a/Discretisation/src/FeVariable.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/FeVariable.c	Thu Jan 14 17:42:23 2010 +1100
@@ -228,7 +228,7 @@ void _FeVariable_Init(
 	Bool			isReferenceSolution,
 	Bool			loadReferenceEachTimestep )
 {
-	Stream* errorStream = Journal_Register( Error_Type, self->type );
+	Stream* errorStream = Journal_Register( Error_Type, (Name)self->type  );
 	/** General and Virtual info should already be set */
 	
 	/** FeVariable info */
@@ -435,11 +435,11 @@ void _FeVariable_Build( void* variable, 
 			this out.*/
 		numNodes = FeMesh_GetElementNodeSize(self->feMesh, 0);
 
-		self->GNx = Memory_Alloc_2DArray( double, dim, numNodes, "Global Shape Function Derivatives" );
+		self->GNx = Memory_Alloc_2DArray( double, dim, numNodes, (Name)"Global Shape Function Derivatives" );
 		
 		/** don't build the equation numbers for fields that aren't being solved for 
 		 * (ie: error and reference fields) */
-		if( !self->isReferenceSolution && self->buildEqNums ) {
+		if( !self->isReferenceSolution && self->buildEqNums  ) {
 			Stg_Component_Build( self->eqNum, data, False );
 		}
 
@@ -460,19 +460,19 @@ void _FeVariable_AssignFromXML( void* va
 
 	_FieldVariable_AssignFromXML( self, cf, data );
 
-	feMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "FEMesh", FeMesh, True, data );
-	geometryMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "GeometryMesh", FeMesh, False, data );
-	dofLayout = Stg_ComponentFactory_ConstructByKey( cf, self->name, DofLayout_Type, DofLayout, True, data );
+	feMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"FEMesh", FeMesh, True, data  );
+	geometryMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"GeometryMesh", FeMesh, False, data  );
+	dofLayout = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)DofLayout_Type, DofLayout, True, data  );
 
-	ic = Stg_ComponentFactory_ConstructByKey( cf, self->name, "IC", VariableCondition, False, data );
-	bc = Stg_ComponentFactory_ConstructByKey( cf, self->name, "BC", VariableCondition, False, data );
-	linkedDofInfo = Stg_ComponentFactory_ConstructByKey( cf, self->name, "LinkedDofInfo", LinkedDofInfo, False, data );
+	ic = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"IC", VariableCondition, False, data  );
+	bc = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"BC", VariableCondition, False, data  );
+	linkedDofInfo = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"LinkedDofInfo", LinkedDofInfo, False, data  );
 
-	isReferenceSolution = Stg_ComponentFactory_GetBool( cf, self->name, "isReferenceSolution", False );
-	loadReferenceEachTimestep = Stg_ComponentFactory_GetBool( cf, self->name, "loadReferenceEachTimestep", False );
+	isReferenceSolution = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"isReferenceSolution", False  );
+	loadReferenceEachTimestep = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"loadReferenceEachTimestep", False  );
 
 	/** TODO: should really be a parameter */
-	self->removeBCs = Stg_ComponentFactory_GetBool( cf, self->name, "removeBCs", True );
+	self->removeBCs = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"removeBCs", True  );
 
 	_FeVariable_Init( self, feMesh, geometryMesh, dofLayout, bc, ic, linkedDofInfo, NULL, isReferenceSolution, loadReferenceEachTimestep );
 }
@@ -565,9 +565,9 @@ void _FeVariable_Initialise( void* varia
 	if( context ) {
    		/** also include check to see if this fevariable should be checkpointed, just incase it didn't go through the 
 		fieldvariable construct phase */ 
-		feVarsList = Dictionary_Get( context->dictionary, "fieldVariablesToCheckpoint" );
-		if ( NULL == feVarsList ) {
-		feVarsList = Dictionary_Get( context->dictionary, "FieldVariablesToCheckpoint" );
+		feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"fieldVariablesToCheckpoint" );
+		if ( NULL == feVarsList  ) {
+		feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"FieldVariablesToCheckpoint" );
 		}
 		if (feVarsList != NULL ) {
 			Index                    listLength = Dictionary_Entry_Value_GetCount( feVarsList );
@@ -575,7 +575,7 @@ void _FeVariable_Initialise( void* varia
 			Dictionary_Entry_Value*  feVarDictValue = NULL;
 			char*                    fieldVariableName;
    
-			for ( var_I = 0; var_I < listLength; var_I++ ) {
+			for ( var_I = 0; var_I < listLength; var_I++  ) {
 				feVarDictValue = Dictionary_Entry_Value_GetElement( feVarsList, var_I );
 				fieldVariableName = Dictionary_Entry_Value_AsString( feVarDictValue ); 
 				if ( 0 == strcmp( self->name, fieldVariableName ) ) {
@@ -587,9 +587,9 @@ void _FeVariable_Initialise( void* varia
 
 		feVarsList = NULL;
 		/** also include check to see if this fevariable should be saved for analysis purposes */ 
-		feVarsList = Dictionary_Get( context->dictionary, "fieldVariablesToSave" );
-		if ( NULL == feVarsList ) {
-			feVarsList = Dictionary_Get( context->dictionary, "FieldVariablesToSave" );	
+		feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"fieldVariablesToSave" );
+		if ( NULL == feVarsList  ) {
+			feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"FieldVariablesToSave" );	
 		}
 		if (feVarsList != NULL ) {
 			Index                    listLength = Dictionary_Entry_Value_GetCount( feVarsList );
@@ -597,7 +597,7 @@ void _FeVariable_Initialise( void* varia
 			Dictionary_Entry_Value*  feVarDictValue = NULL;
 			char*                    fieldVariableName;
    
-			for ( var_I = 0; var_I < listLength; var_I++ ) {
+			for ( var_I = 0; var_I < listLength; var_I++  ) {
 				feVarDictValue = Dictionary_Entry_Value_GetElement( feVarsList, var_I );
 				fieldVariableName = Dictionary_Entry_Value_AsString( feVarDictValue ); 
 				if ( 0 == strcmp( self->name, fieldVariableName ) ) {
@@ -726,7 +726,7 @@ InterpolationResult _FeVariable_Interpol
 	}
 	else if ( retValue == SHADOW ) {
 		if ( False == self->shadowValuesSynchronised ) {
-			Stream* warningStr = Journal_Register( Error_Type, self->type );
+			Stream* warningStr = Journal_Register( Error_Type, (Name)self->type  );
 			Journal_Printf( warningStr, "Warning - in %s: user asking to interpolate a value at "
 				"coord (%g,%g,%g), which is in shadow space, but "
 				"FeVariable_SyncShadowValues() hasn't been called yet.\n", 
@@ -986,7 +986,7 @@ void FeVariable_PrintLocalDiscreteValues
 	double			dx = 0;
 	double			dy = 0;
 	DofLayout*		dofLayout = self->dofLayout;
-	Stream*			eStream = Journal_Register( Error_Type, self->type );
+	Stream*			eStream = Journal_Register( Error_Type, (Name)self->type  );
 	Index			minLocalNodeX;
 	Index			minLocalNodeY;
 	Index			maxLocalNodeX;
@@ -998,8 +998,8 @@ void FeVariable_PrintLocalDiscreteValues
 	unsigned		*localOrigin, *localRange;
 	double			min[2], max[2];
 
-	if( ExtensionManager_GetHandle( self->feMesh->info, "vertexGrid" ) == (unsigned)-1 || 
-	    Mesh_GetDimSize( self->feMesh ) != 2 )
+	if( ExtensionManager_GetHandle( self->feMesh->info, (Name)"vertexGrid" ) == (unsigned)-1 || 
+	    Mesh_GetDimSize( self->feMesh ) != 2  )
 	  {
 		Journal_Printf( eStream, "Warning: %s called on variable \"%s\", but this isn't stored on a "
 			"regular 2D mesh - so just returning.\n", __func__, self->name );
@@ -1007,11 +1007,11 @@ void FeVariable_PrintLocalDiscreteValues
 	}
 
 	vertGrid = *(Grid**)ExtensionManager_Get( self->feMesh->info, self->feMesh, 
-					      ExtensionManager_GetHandle( self->feMesh->info, "vertexGrid" ) );
-	localOrigin = (unsigned*)ExtensionManager_Get( self->feMesh->info, self->feMesh, 
-						       ExtensionManager_GetHandle( self->feMesh->info, "localOrigin" ) );
-	localRange = (unsigned*)ExtensionManager_Get( self->feMesh->info, self->feMesh, 
-						      ExtensionManager_GetHandle( self->feMesh->info, "localRange" ) );
+					      ExtensionManager_GetHandle( self->feMesh->info, (Name)"vertexGrid" ) );
+	localOrigin = (unsigned* )ExtensionManager_Get( self->feMesh->info, self->feMesh, 
+						       ExtensionManager_GetHandle( self->feMesh->info, (Name)"localOrigin" ) );
+	localRange = (unsigned* )ExtensionManager_Get( self->feMesh->info, self->feMesh, 
+						      ExtensionManager_GetHandle( self->feMesh->info, (Name)"localRange" )  );
 
 	memcpy( inds, localOrigin, Mesh_GetDimSize( self->feMesh ) * sizeof(unsigned) );
 	insist( Mesh_GlobalToDomain( self->feMesh, MT_VERTEX, Grid_Project( vertGrid, inds ), &vertInd ), == True );
@@ -1135,7 +1135,7 @@ Bool FeVariable_InterpolateDerivativesAt
 	else /** We found the coord is within a local or shadow element */ {
 		if ( elementCoordIn >= FeMesh_GetElementLocalSize( self->feMesh ) ) {
 			if ( False == self->shadowValuesSynchronised ) {
-				Stream* warningStr = Journal_Register( Error_Type, self->type );
+				Stream* warningStr = Journal_Register( Error_Type, (Name)self->type  );
 				Journal_Printf( warningStr, "Warning - in %s: user asking to interpolate derivatives "
 					"to coord (%g,%g,%g), which is in shadow space, but "
 					"FeVariable_SyncShadowValues() hasn't been called yet.\n", 
@@ -1714,7 +1714,7 @@ double FeVariable_AverageTopLayer( void*
 	Grid*			elGrid;
 
 	elGrid = *(Grid**)ExtensionManager_Get( self->feMesh->info, self->feMesh, 
-						ExtensionManager_GetHandle( self->feMesh->info, "elementGrid" ) );
+						ExtensionManager_GetHandle( self->feMesh->info, (Name)"elementGrid" )  );
 
 	return FeVariable_AverageLayer( self, swarm, layerAxis, elGrid->sizes[1] - 1 );
 }
@@ -1744,7 +1744,7 @@ double FeVariable_AverageLayer( void* fe
 
 	/** Calculate layer thickness.  This assumes the mesh is regular. */
 	vertGrid = *(Grid**)ExtensionManager_Get( self->feMesh->info, self->feMesh, 
-						  ExtensionManager_GetHandle( self->feMesh->info, "vertexGrid" ) );
+						  ExtensionManager_GetHandle( self->feMesh->info, (Name)"vertexGrid" )  );
 	inds = Memory_Alloc_Array_Unnamed( unsigned, Mesh_GetDimSize( self->feMesh ) );
 	for( d_i = 0; d_i < Mesh_GetDimSize( self->feMesh ); d_i++ ) {
 		if( d_i != layerAxis )
@@ -1958,7 +1958,7 @@ void FeVariable_SaveToFile( void* feVari
 	int               myRank;
 	int               nProcs;
 	MPI_Status        status;
-   Stream*           errorStr = Journal_Register( Error_Type, self->type );
+   Stream*           errorStr = Journal_Register( Error_Type, (Name)self->type  );
    const int         FINISHED_WRITING_TAG = 100;
    int               confirmation = 0;
    MeshGenerator*    theGenerator;
@@ -2211,7 +2211,7 @@ void FeVariable_ReadFromFile( void* feVa
 	unsigned		       nRanks;
 	int                nDims;
 	Bool               savedCoords = False;
-	Stream*            errorStr = Journal_Register( Error_Type, self->type );
+	Stream*            errorStr = Journal_Register( Error_Type, (Name)self->type  );
    MeshGenerator*    theGenerator;
 	
 #ifdef READ_HDF5
@@ -2488,7 +2488,7 @@ void FeVariable_ReadFromFile( void* feVa
 
 void FeVariable_InterpolateFromFile( void* feVariable, DomainContext* context, const char* feVarFilename, const char* meshFilename ){
 	FeVariable*							self = (FeVariable*)feVariable;
-   Stream*								errorStr = Journal_Register( Error_Type, self->type );   
+   Stream*								errorStr = Journal_Register( Error_Type, (Name)self->type  );   
 #ifdef READ_HDF5
    CartesianGenerator*				gen;
    C0Generator*						C0gen;
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/FieldTest.c
--- a/Discretisation/src/FieldTest.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/FieldTest.c	Thu Jan 14 17:42:23 2010 +1100
@@ -149,32 +149,32 @@ void _FieldTest_AssignFromXML( void* fie
 void _FieldTest_AssignFromXML( void* fieldTest, Stg_ComponentFactory* cf, void* data ) {
 	FieldTest*					self = (FieldTest*)fieldTest;
 	Dictionary*					dict = cf->rootDict;
-	Dictionary_Entry_Value*	dictEntryVal = Dictionary_Get( dict, "pluginData" );
-	Dictionary*					pluginDict =  Dictionary_Entry_Value_AsDictionary( dictEntryVal );
+	Dictionary_Entry_Value*	dictEntryVal = Dictionary_Get( dict, (Dictionary_Entry_Key)"pluginData" );
+	Dictionary*					pluginDict =  Dictionary_Entry_Value_AsDictionary( dictEntryVal  );
 	/* get the pluginDict from the xml, needed for rejig */
 	Dictionary*					pluginDict2	= Codelet_GetPluginDictionary( self, cf->rootDict );
 	Dictionary_Entry_Value*	fieldList;
-	Dictionary_Entry_Value*	swarmVarList = Dictionary_Get( dict, "NumericSwarmVariableNames" );
+	Dictionary_Entry_Value*	swarmVarList = Dictionary_Get( dict, (Dictionary_Entry_Key)"NumericSwarmVariableNames"  );
 	FieldVariable_Register*	fV_Register;
 	Index							feVariable_I/*, referenceFieldCount*/;
 	Index							swarmVar_I;
 	Name							fieldName;
 	Hook*							generateErrorFields;
 	Hook*							physicsTestHook;
-	Stream*						errStream = Journal_Register( Error_Type, "FieldTests" );
+	Stream*						errStream = Journal_Register( Error_Type, (Name)"FieldTests"  );
 
 	Journal_Firewall( pluginDict != NULL , errStream, "\nError in %s: No pluginData xml was defined ... aborting\n", __func__ );
 
-	self->context = Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict2, "Context" ), DomainContext, False, data );
+	self->context = Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict2, (Dictionary_Entry_Key)"Context"  ), DomainContext, False, data );
 	if( !self->context ) 
-		self->context = Stg_ComponentFactory_ConstructByName( cf, "context", DomainContext, True, data );
+		self->context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", DomainContext, True, data  );
 
 	fV_Register = self->context->fieldVariable_Register;
 
-	fieldList = Dictionary_Get( pluginDict, "NumericFields" );
+	fieldList = Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"NumericFields" );
 	self->fieldCount = fieldList ? Dictionary_Entry_Value_GetCount( fieldList ) / 2 : 0;
 
-	if( self->fieldCount ) {
+	if( self->fieldCount  ) {
 		self->numericFieldList   	= Memory_Alloc_Array( FeVariable*, self->fieldCount, "numeric fields" );
 		self->referenceFieldList 	= Memory_Alloc_Array( FeVariable*, self->fieldCount, "reference fields" );
 		self->errorFieldList     	= Memory_Alloc_Array( FeVariable*, self->fieldCount, "error fields" );
@@ -187,7 +187,7 @@ void _FieldTest_AssignFromXML( void* fie
 		}
 #if 0	
 		else {
-			fieldList = Dictionary_Get( pluginDict, "ReferenceFields" );
+			fieldList = Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"ReferenceFields" );
 			referenceFieldCount = fieldList ? Dictionary_Entry_Value_GetCount( fieldList ) : assert(0);
 
 			for( feVariable_I = 0; feVariable_I < referenceFieldCount; feVariable_I++ ) {
@@ -198,11 +198,11 @@ void _FieldTest_AssignFromXML( void* fie
 
 		for( feVariable_I = 0; feVariable_I < self->fieldCount; feVariable_I++ ) {
 			/* read in the FeVariable from the tuple */
-			fieldName = ( fieldList ) ? 
+			fieldName = ( fieldList  ) ? 
 				    StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( fieldList, 2 * feVariable_I ) ) ):
-				    StG_Strdup( Dictionary_GetString( pluginDict, "FeVariable" ) );
+				    StG_Strdup( Dictionary_GetString( pluginDict, (Dictionary_Entry_Key)"FeVariable" ) );
 			
-			self->numericFieldList[feVariable_I] = (FeVariable*) FieldVariable_Register_GetByName( fV_Register, fieldName );
+			self->numericFieldList[feVariable_I] = (FeVariable* ) FieldVariable_Register_GetByName( fV_Register, fieldName );
 
 			if( !self->numericFieldList[feVariable_I] ) {
 				/* if the numericFieldList[x] can't be found in register 
@@ -210,8 +210,8 @@ void _FieldTest_AssignFromXML( void* fie
 					 skip this entry and take one off self->fieldCount 
 					 needed for simple regression test
 				 */
-				self->numericFieldList[feVariable_I] = Stg_ComponentFactory_ConstructByName( cf, fieldName, FeVariable, False, data ); 
-				if( self->numericFieldList[feVariable_I]==NULL ) { 
+				self->numericFieldList[feVariable_I] = Stg_ComponentFactory_ConstructByName( cf, (Name)fieldName, FeVariable, False, data ); 
+				if( self->numericFieldList[feVariable_I]==NULL  ) { 
 					self->fieldCount--; 
 					continue; 
 				}
@@ -224,32 +224,32 @@ void _FieldTest_AssignFromXML( void* fie
 		}
 	}
 
-	self->integrationSwarm 	= (Swarm*)LiveComponentRegister_Get( cf->LCRegister, Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, "IntegrationSwarm" ) ) );
-	self->constantMesh     	= (FeMesh*)LiveComponentRegister_Get( cf->LCRegister, Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, "ConstantMesh"     ) ) );
-	self->elementMesh      	= (FeMesh*)LiveComponentRegister_Get( cf->LCRegister, Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, "ElementMesh"      ) ) );
+	self->integrationSwarm 	= (Swarm*)LiveComponentRegister_Get( cf->LCRegister, Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"IntegrationSwarm" ) ) );
+	self->constantMesh     	= (FeMesh* )LiveComponentRegister_Get( cf->LCRegister, Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"ConstantMesh"     ) ) );
+	self->elementMesh      	= (FeMesh* )LiveComponentRegister_Get( cf->LCRegister, Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"ElementMesh"      ) ) );
 
 	self->swarmVarCount = swarmVarList ? Dictionary_Entry_Value_GetCount( swarmVarList ) : 0;
-	if( self->swarmVarCount ) {
+	if( self->swarmVarCount  ) {
 		self->swarmVarNameList = Memory_Alloc_Array( Name, self->swarmVarCount, "numeric swarm variable names" );
 	
 		for( swarmVar_I = 0; swarmVar_I < self->swarmVarCount; swarmVar_I++ ) {
 			self->swarmVarNameList[swarmVar_I] = ( swarmVarList ) ? 
 					StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( swarmVarList, swarmVar_I ) ) ):
-					StG_Strdup( Dictionary_GetString( pluginDict, "SwarmVariable" ) );
+					StG_Strdup( Dictionary_GetString( pluginDict, (Dictionary_Entry_Key)"SwarmVariable" )  );
 		}	
 	}
 	
-	self->referenceSolnPath     = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, "referenceSolutionFilePath" ) ) );
-	self->normalise             = Dictionary_Entry_Value_AsBool( Dictionary_Get( pluginDict, "normaliseByAnalyticSolution" ) );
-	self->epsilon               = Dictionary_Entry_Value_AsDouble( Dictionary_Get( pluginDict, "epsilon" ) );
-	self->testTimestep          = Dictionary_GetInt_WithDefault( pluginDict, "testTimestep", 0 );
-	self->referenceSolnFromFile = Dictionary_Entry_Value_AsBool( Dictionary_Get( pluginDict, "useReferenceSolutionFromFile" ) );
-	self->appendToAnalysisFile  = Dictionary_GetBool_WithDefault( pluginDict, "appendToAnalysisFile", False ) ;
+	self->referenceSolnPath     = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"referenceSolutionFilePath" ) )  );
+	self->normalise             = Dictionary_Entry_Value_AsBool( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"normaliseByAnalyticSolution" )  );
+	self->epsilon               = Dictionary_Entry_Value_AsDouble( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"epsilon" )  );
+	self->testTimestep          = Dictionary_GetInt_WithDefault( pluginDict, (Dictionary_Entry_Key)"testTimestep", 0  );
+	self->referenceSolnFromFile = Dictionary_Entry_Value_AsBool( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"useReferenceSolutionFromFile" )  );
+	self->appendToAnalysisFile  = Dictionary_GetBool_WithDefault( pluginDict, (Dictionary_Entry_Key)"appendToAnalysisFile", False  ) ;
 
 	/* for the physics test */
-	self->expectedFileName     = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, "expectedFileName" ) ) );
-	self->expectedFilePath     = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, "expectedFilePath" ) ) );
-	self->dumpExpectedFileName = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, "expectedOutputFileName" ) ) );
+	self->expectedFileName     = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"expectedFileName" ) )  );
+	self->expectedFilePath     = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"expectedFilePath" ) )  );
+	self->dumpExpectedFileName = StG_Strdup( Dictionary_Entry_Value_AsString( Dictionary_Get( pluginDict, (Dictionary_Entry_Key)"expectedOutputFileName" ) )  );
 	self->expectedPass     = False;
 
 	/* set up the entry point */
@@ -291,10 +291,10 @@ void _FieldTest_Build( void* fieldTest, 
 	}*/
 
 	if( self->fieldCount ) {
-		self->gAnalyticSq = Memory_Alloc_2DArray( double, self->fieldCount, 9, "global reference solution squared" );
-		self->gErrorSq 	  = Memory_Alloc_2DArray( double, self->fieldCount, 9, "global L2 error squared" );
-		self->gError	  = Memory_Alloc_2DArray( double, self->fieldCount, 9, "global L2 error" );
-		self->gErrorNorm  = Memory_Alloc_2DArray( double, self->fieldCount, 9, "global L2 error normalised" );
+		self->gAnalyticSq = Memory_Alloc_2DArray( double, self->fieldCount, 9, (Name)"global reference solution squared"  );
+		self->gErrorSq 	  = Memory_Alloc_2DArray( double, self->fieldCount, 9, (Name)"global L2 error squared"  );
+		self->gError	  = Memory_Alloc_2DArray( double, self->fieldCount, 9, (Name)"global L2 error"  );
+		self->gErrorNorm  = Memory_Alloc_2DArray( double, self->fieldCount, 9, (Name)"global L2 error normalised"  );
 	}
 }
 
@@ -455,9 +455,9 @@ void FieldTest_BuildAnalyticField( void*
 	unsigned					nDomainVerts = Mesh_GetDomainSize( referenceMesh, MT_VERTEX );
 	static double*			arrayPtr;
 
-	tmpName = Stg_Object_AppendSuffix( numericField, "AnalyticVariable" );
+	tmpName = Stg_Object_AppendSuffix( numericField, (Name)"AnalyticVariable" );
 
-	if( componentsCount == 1 ) {
+	if( componentsCount == 1  ) {
 		arrayPtr = Memory_Alloc_Array_Unnamed( double, nDomainVerts );
 		baseVariable = Variable_NewScalar( tmpName, (AbstractContext*)self->context, Variable_DataType_Double, &nDomainVerts, NULL, (void**)&arrayPtr, variable_Register );
 	}
@@ -480,7 +480,7 @@ void FieldTest_BuildAnalyticField( void*
 	}
 	Memory_Free( tmpName );
 
-	tmpName = Stg_Object_AppendSuffix( numericField, "AnalyticDofLayout" );
+	tmpName = Stg_Object_AppendSuffix( numericField, (Name)"AnalyticDofLayout"  );
 
 	referenceDofLayout = DofLayout_New( tmpName, self->context, variable_Register, Mesh_GetDomainSize( referenceMesh, MT_VERTEX ), referenceMesh );
 
@@ -504,7 +504,7 @@ void FieldTest_BuildAnalyticField( void*
 
 	Memory_Free( tmpName );
 
-	tmpName = Stg_Object_AppendSuffix( numericField, "Analytic" );
+	tmpName = Stg_Object_AppendSuffix( numericField, (Name)"Analytic"  );
 
 	self->referenceFieldList[field_I] = FeVariable_New( tmpName, self->context, referenceMesh, referenceMesh, referenceDofLayout, NULL, NULL, NULL, 
 		Mesh_GetDimSize( referenceMesh ), False, False, False, context->fieldVariable_Register );
@@ -514,12 +514,12 @@ void FieldTest_BuildAnalyticField( void*
 
 	if( componentsCount > Mesh_GetDimSize( referenceMesh ) ) {
 		/* we're dealing with a tensor, so use invariant */
-		tmpName = Stg_Object_AppendSuffix( self->referenceFieldList[field_I], "Invariant" );
+		tmpName = Stg_Object_AppendSuffix( self->referenceFieldList[field_I], (Name)"Invariant"  );
 		self->referenceMagFieldList[field_I] = OperatorFeVariable_NewUnary( tmpName, self->context, self->referenceFieldList[field_I], "SymmetricTensor_Invariant" );
 		self->referenceMagFieldList[field_I]->context = context;
 	} else {
 		/* we're dealing with a vector, so use magnitude */
-		tmpName = Stg_Object_AppendSuffix( self->referenceFieldList[field_I], "Magnitude" );
+		tmpName = Stg_Object_AppendSuffix( self->referenceFieldList[field_I], (Name)"Magnitude"  );
 		self->referenceMagFieldList[field_I] = OperatorFeVariable_NewUnary( tmpName, self->context, self->referenceFieldList[field_I], "Magnitude" );
 		self->referenceMagFieldList[field_I]->context = context;
 	}
@@ -554,9 +554,9 @@ void FieldTest_BuildErrField( void* fiel
 	unsigned					nDomainVerts = Mesh_GetDomainSize( constantMesh, MT_VERTEX );
 	static void*			arrayPtr;
 
-	tmpName = Stg_Object_AppendSuffix( numericField, "ErrorVariable" );
+	tmpName = Stg_Object_AppendSuffix( numericField, (Name)"ErrorVariable" );
 
-	if( componentsCount == 1 ) {
+	if( componentsCount == 1  ) {
 		arrayPtr = Memory_Alloc_Array_Unnamed( double, nDomainVerts );
 		baseVariable = Variable_NewScalar( tmpName, (AbstractContext*)self->context, Variable_DataType_Double, &nDomainVerts, NULL, &arrayPtr, 
 						   variable_Register );
@@ -573,7 +573,7 @@ void FieldTest_BuildErrField( void* fiel
 	}
 	Memory_Free( tmpName );
 
-	tmpName = Stg_Object_AppendSuffix( numericField, "ErrorDofLayout" );
+	tmpName = Stg_Object_AppendSuffix( numericField, (Name)"ErrorDofLayout"  );
 
 	errorDofLayout = DofLayout_New( tmpName, self->context, variable_Register, Mesh_GetDomainSize( constantMesh, MT_VERTEX ), constantMesh );
 
@@ -599,7 +599,7 @@ void FieldTest_BuildErrField( void* fiel
 
 	Memory_Free( tmpName );
 
-	tmpName = Stg_Object_AppendSuffix( numericField, "Error" );
+	tmpName = Stg_Object_AppendSuffix( numericField, (Name)"Error"  );
 
 	self->errorFieldList[field_I] = FeVariable_New( tmpName, self->context, constantMesh, constantMesh, errorDofLayout, NULL, NULL, NULL, 
 		Mesh_GetDimSize( constantMesh ), False, False, False, context->fieldVariable_Register );
@@ -608,12 +608,12 @@ void FieldTest_BuildErrField( void* fiel
 
 	if( componentsCount > Mesh_GetDimSize( constantMesh ) ) {
 		/* we're dealing with a tensor, so use invariant */
-		tmpName = Stg_Object_AppendSuffix( self->errorFieldList[field_I], "Invariant" );
+		tmpName = Stg_Object_AppendSuffix( self->errorFieldList[field_I], (Name)"Invariant"  );
 		self->errorMagFieldList[field_I] = OperatorFeVariable_NewUnary( tmpName, self->context, self->errorFieldList[field_I], "SymmetricTensor_Invariant" );
 		self->errorMagFieldList[field_I]->context = context;
 	} else {
 		/* we're dealing with a vector, so use magnitude */
-		tmpName = Stg_Object_AppendSuffix( self->errorFieldList[field_I], "Magnitude" );
+		tmpName = Stg_Object_AppendSuffix( self->errorFieldList[field_I], (Name)"Magnitude"  );
 		self->errorMagFieldList[field_I] = OperatorFeVariable_NewUnary( tmpName, self->context, self->errorFieldList[field_I], "Magnitude" );
 		self->errorMagFieldList[field_I]->context = context;
 	}
@@ -942,7 +942,7 @@ void FieldTest_GenerateErrFields( void* 
 	DomainContext*	context = (DomainContext*)_context;
 	/* this a really dodgy way to get the self ptr, as will only work if the textual name is consistent with that in 
 	 * the XML - need to find a way to add an entry point which allows the self ptr to be passed as a void * */
-	//FieldTest* 		self 			= LiveComponentRegister_Get( context->CF->LCRegister, "NumericFields" );
+	//FieldTest* 		self 			= LiveComponentRegister_Get( context->CF->LCRegister, (Name)"NumericFields"  );
 	/* this is also a dodgy way to get the self ptr, as its obtained from a global variable */
 	FieldTest*		self = fieldTestSingleton;
 	FeVariable*		errorField;
@@ -967,7 +967,7 @@ void FieldTest_GenerateErrFields( void* 
 		/* append (or create if not found ) a file to report results */
 		double length, elementResI;
 		char* filename;
-		analysisStream = Journal_Register( Info_Type, self->type );
+		analysisStream = Journal_Register( Info_Type, (Name)self->type  );
 		Stg_asprintf( &filename, "%s-analysis.cvg", self->name );
 		Stream_AppendFile( analysisStream, filename );
 		Memory_Free( filename );
@@ -981,7 +981,7 @@ void FieldTest_GenerateErrFields( void* 
 			}
 		}
 		length = Dictionary_GetDouble( context->CF->rootDict, "maxX" ) - Dictionary_GetDouble( context->CF->rootDict, "minX" ) ;
-		elementResI = Dictionary_GetInt( context->CF->rootDict, "elementResI" );
+		elementResI = Dictionary_GetInt( context->CF->rootDict, (Dictionary_Entry_Key)"elementResI"  );
 		/* assume square resolution */
 		Journal_RPrintf( analysisStream, "\n%e ", length/elementResI );
 	}
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/Finalise.c
--- a/Discretisation/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -53,7 +53,7 @@
 #include <stdio.h>
 
 Bool StgFEM_Discretisation_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	Stream_IndentBranch( StgFEM_Debug );
 
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/Init.c
--- a/Discretisation/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -58,20 +58,20 @@ Bool StgFEM_Discretisation_Init( int* ar
 	Stg_ComponentRegister* componentRegister = Stg_ComponentRegister_Get_ComponentRegister();
 	int tmp;
 	
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
-	tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, "Context" ) );
-	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), 0 );
-	Journal_Printf( /* DO NOT CHANGE OR REMOVE */ Journal_Register( InfoStream_Type, "Context" ), 
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), 0 );
+	Journal_Printf( /* DO NOT CHANGE OR REMOVE */ Journal_Register( InfoStream_Type, (Name)"Context"  ), 
 		"StGermain FEM Discretisation Framework revision %s. Copyright (C) 2003-2005 VPAC.\n", VERSION );
-	Stream_Flush( Journal_Register( InfoStream_Type, "Context" ) );
-	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), tmp );
+	Stream_Flush( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), tmp );
 	
 	/* initialise this level's streams */
-	StgFEM_Debug = Journal_Register( DebugStream_Type, "StgFEM" );
+	StgFEM_Debug = Journal_Register( DebugStream_Type, (Name)"StgFEM"  );
 	StgFEM_Discretisation_Debug = Stream_RegisterChild( StgFEM_Debug, "Discretisation" );
-	StgFEM_Warning = Journal_Register( ErrorStream_Type, "StgFEM" );
+	StgFEM_Warning = Journal_Register( ErrorStream_Type, (Name)"StgFEM" );
 
-	elementType_Register = ElementType_Register_New( "elementType_Register" );
+	elementType_Register = ElementType_Register_New( "elementType_Register"  );
 	ElementType_Register_Add( elementType_Register, (ElementType*)ConstantElementType_New( "constantElementType" ) );
 	ElementType_Register_Add( elementType_Register, (ElementType*)BilinearElementType_New( "bilinearElementType" ) );
 	ElementType_Register_Add( elementType_Register, (ElementType*)TrilinearElementType_New( "trilinearElementType" ) );
@@ -79,19 +79,19 @@ Bool StgFEM_Discretisation_Init( int* ar
 	ElementType_Register_Add( elementType_Register, (ElementType*)Biquadratic_New( "biquadraticElementType" ) );
 	ElementType_Register_Add( elementType_Register, (ElementType*)Triquadratic_New( "triquadraticElementType" ) );
 	
-	Stg_ComponentRegister_Add( componentRegister, FeVariable_Type, "0", _FeVariable_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, LinkedDofInfo_Type, "0", _LinkedDofInfo_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, OperatorFeVariable_Type, "0", _OperatorFeVariable_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, ShapeFeVariable_Type, "0", ShapeFeVariable_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, FeSwarmVariable_Type, "0", _FeSwarmVariable_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, FeMesh_Type, "0", _FeMesh_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, C0Generator_Type, "0", C0Generator_New );
-	Stg_ComponentRegister_Add( componentRegister, C2Generator_Type, "0", C2Generator_New );
+	Stg_ComponentRegister_Add( componentRegister, FeVariable_Type, (Name)"0", _FeVariable_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, LinkedDofInfo_Type, (Name)"0", _LinkedDofInfo_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, OperatorFeVariable_Type, (Name)"0", _OperatorFeVariable_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, ShapeFeVariable_Type, (Name)"0", ShapeFeVariable_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, FeSwarmVariable_Type, (Name)"0", _FeSwarmVariable_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, FeMesh_Type, (Name)"0", _FeMesh_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, C0Generator_Type, (Name)"0", C0Generator_New  );
+	Stg_ComponentRegister_Add( componentRegister, C2Generator_Type, (Name)"0", C2Generator_New  );
 /*
-	Stg_ComponentRegister_Add( componentRegister, P1Generator_Type, "0", P1Generator_New );
+	Stg_ComponentRegister_Add( componentRegister, P1Generator_Type, (Name)"0", P1Generator_New  );
 */
-	Stg_ComponentRegister_Add( componentRegister, Inner2DGenerator_Type, "0", Inner2DGenerator_New );
-	Stg_ComponentRegister_Add( componentRegister, FieldTest_Type, "0", _FieldTest_DefaultNew );
+	Stg_ComponentRegister_Add( componentRegister, Inner2DGenerator_Type, (Name)"0", Inner2DGenerator_New  );
+	Stg_ComponentRegister_Add( componentRegister, FieldTest_Type, (Name)"0", _FieldTest_DefaultNew  );
 	
 	/** Register Parents for type checking */
 	RegisterParent( FeMesh_Algorithms_Type, Mesh_Algorithms_Type );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/Inner2DGenerator.c
--- a/Discretisation/src/Inner2DGenerator.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/Inner2DGenerator.c	Thu Jan 14 17:42:23 2010 +1100
@@ -105,7 +105,7 @@ void _Inner2DGenerator_Print( void* gene
 	
 	/* Set the Journal for printing informations */
 	Stream* generatorStream;
-	generatorStream = Journal_Register( InfoStream_Type, "Inner2DGeneratorStream" );
+	generatorStream = Journal_Register( InfoStream_Type, (Name)"Inner2DGeneratorStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "Inner2DGenerator (ptr): (%p)\n", self );
@@ -121,7 +121,7 @@ void _Inner2DGenerator_AssignFromXML( vo
 
 	_MeshGenerator_AssignFromXML( self, cf, data );
 
-	elMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "elementMesh", Mesh, True, data );
+	elMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"elementMesh", Mesh, True, data  );
 	Inner2DGenerator_SetElementMesh( self, elMesh );
 }
 
@@ -157,11 +157,11 @@ void Inner2DGenerator_Generate( void* ge
 	Inner2DGenerator_BuildElementTypes( self, mesh );
 
 	elGrid = *(Grid**)ExtensionManager_Get( self->elMesh->info, self->elMesh, 
-					       ExtensionManager_GetHandle( self->elMesh->info, "elementGrid" ) );
-	ExtensionManager_Add( mesh->info, "elementGrid", sizeof(Grid*) );
-	grid = (Grid**)ExtensionManager_Get( mesh->info, mesh, 
-					     ExtensionManager_GetHandle( mesh->info, "elementGrid" ) );
-	*grid = Grid_New();
+					       ExtensionManager_GetHandle( self->elMesh->info, (Name)"elementGrid" )  );
+	ExtensionManager_Add( mesh->info, (Name)"elementGrid", sizeof(Grid*) );
+	grid = (Grid** )ExtensionManager_Get( mesh->info, mesh, 
+					     ExtensionManager_GetHandle( mesh->info, (Name)"elementGrid" ) );
+	*grid = Grid_New( );
 	Grid_SetNumDims( *grid, elGrid->nDims );
 	Grid_SetSizes( *grid, elGrid->sizes );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/LinearTriangleElementType.c
--- a/Discretisation/src/LinearTriangleElementType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/LinearTriangleElementType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -208,7 +208,7 @@ void _LinearTriangleElementType_SF_allLo
 }
 
 int _LinearTriangularElementType_SurfaceNormal( void* elementType, unsigned element_I, unsigned dim, double* xi, double* norm ) {
-	Stream* errStream = Journal_Register( ErrorStream_Type, ElementType_Type );
+	Stream* errStream = Journal_Register( ErrorStream_Type, (Name)ElementType_Type  );
 
 	Journal_Printf( errStream, "surface normal function not yet implemented for this element type.\n" );
 	assert( 0 );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/LinkedDofInfo.c
--- a/Discretisation/src/LinkedDofInfo.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/LinkedDofInfo.c	Thu Jan 14 17:42:23 2010 +1100
@@ -164,12 +164,12 @@ void _LinkedDofInfo_AssignFromXML( void*
 
 	dictionary = Dictionary_GetDictionary( cf->componentDict, self->name );
 	
-	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", DomainContext, False, data );
-	if( !context ) 
-		context = Stg_ComponentFactory_ConstructByName( cf, "context", DomainContext, True, data );
+	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", DomainContext, False, data );
+	if( !context  ) 
+		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", DomainContext, True, data  );
 
-	mesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Mesh",         Mesh,      True, data );
-	dofLayout = Stg_ComponentFactory_ConstructByKey( cf, self->name, DofLayout_Type, DofLayout, True, data );
+	mesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Mesh", Mesh, True, data  );
+	dofLayout = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)DofLayout_Type, DofLayout, True, data  );
 
 	_LinkedDofInfo_Init( self, context, mesh, dofLayout, dictionary ); 
 }
@@ -258,7 +258,7 @@ void _LinkedDofInfo_Build( void* linkedD
 		}
 	}
 	
-	linkSpecs = Dictionary_Get( self->dictionary, "linkSpecifications" );
+	linkSpecs = Dictionary_Get( self->dictionary, (Dictionary_Entry_Key)"linkSpecifications" );
 
 	/* Note that the dictionary entry is optional - user may prefer to specify the sets
 	using the AddDofToSet and AddDofsToSet_FromIndexSet functions */
@@ -276,13 +276,13 @@ void _LinkedDofInfo_Build( void* linkedD
 
 		numSpecs = Dictionary_Entry_Value_GetCount( linkSpecs );
 		
-		for ( linkSpec_I = 0; linkSpec_I < numSpecs; linkSpec_I++ ) {
+		for ( linkSpec_I = 0; linkSpec_I < numSpecs; linkSpec_I++  ) {
 			linkSpec = Dictionary_Entry_Value_GetElement( linkSpecs, linkSpec_I );
 			linkSpecDict = Dictionary_Entry_Value_AsDictionary( linkSpec );
-			nodalDof = Dictionary_Entry_Value_AsUnsignedInt( Dictionary_Get( linkSpecDict, "dof" ) );
+			nodalDof = Dictionary_Entry_Value_AsUnsignedInt( Dictionary_Get( linkSpecDict, (Dictionary_Entry_Key)"dof" ) );
 			
-			if ( nodalDof >= self->dofLayout->dofCounts[0] ) {
-				Stream*  warningStr = Journal_Register( Error_Type, self->type );
+			if ( nodalDof >= self->dofLayout->dofCounts[0]  ) {
+				Stream*  warningStr = Journal_Register( Error_Type, (Name)self->type  );
 
 				Journal_DPrintf( warningStr, "Warning- in %s: User requested a periodic BC on "
 					"dof %d, but only %d dofs are active. Ignoring.\n", __func__, nodalDof,
@@ -291,11 +291,11 @@ void _LinkedDofInfo_Build( void* linkedD
 				continue;
 			}
 			
-			if ( ( wallVal = Dictionary_Get( linkSpecDict, "wall" ) ) ) {
+			if ( ( wallVal = Dictionary_Get( linkSpecDict, (Dictionary_Entry_Key)"wall" ) ) ) {
 				IndexSet*	indexSet = NULL;
-				char*		wallStr = Dictionary_Entry_Value_AsString( wallVal );
+				char*		wallStr = Dictionary_Entry_Value_AsString( wallVal  );
 				
-				dofSet = Dictionary_Entry_Value_AsUnsignedInt( Dictionary_Get( linkSpecDict, "dofSet" ) );
+				dofSet = Dictionary_Entry_Value_AsUnsignedInt( Dictionary_Get( linkSpecDict, (Dictionary_Entry_Key)"dofSet" )  );
 				
 				if ( 0 == strcmp( wallStr, "left" ) ) {
 					indexSet = RegularMeshUtils_CreateGlobalLeftSet( self->mesh );
@@ -316,7 +316,7 @@ void _LinkedDofInfo_Build( void* linkedD
 					indexSet = RegularMeshUtils_CreateGlobalBackSet( self->mesh );
 				}
 				else {
-					Stream*	errorStr = Journal_Register( Error_Type, self->type );
+					Stream*	errorStr = Journal_Register( Error_Type, (Name)self->type  );
 					Journal_Printf( errorStr, "Error in %s: unknown wall string \"%s\" given. "
 						"Exiting.\n", __func__, wallStr );
 					exit(EXIT_FAILURE);
@@ -328,12 +328,12 @@ void _LinkedDofInfo_Build( void* linkedD
 				
 				LinkedDofInfo_AddDofsToSet_FromIndexSet( self, dofSet, indexSet, nodalDof );
 			}
-			else if ( ( shapeVal = Dictionary_Get( linkSpecDict, "shape" ) ) ) {
+			else if ( ( shapeVal = Dictionary_Get( linkSpecDict, (Dictionary_Entry_Key)"shape" ) ) ) {
 				char*             shapeStr = Dictionary_Entry_Value_AsString( shapeVal );
 				Stg_Shape*        shape = NULL;
 				Node_LocalIndex   lNode_I = 0;
-				AbstractContext*  context = (AbstractContext*) data;
-				Stream*           errorStr = Journal_Register( Error_Type, self->type );
+				AbstractContext*  context = (AbstractContext* ) data;
+				Stream*           errorStr = Journal_Register( Error_Type, (Name)self->type  );
 
 				Journal_Firewall( context && Stg_Class_IsInstance( context, AbstractContext_Type ),
 					errorStr, "Error - in %s(): you've asked to create a Shape linked dof "
@@ -347,12 +347,12 @@ void _LinkedDofInfo_Build( void* linkedD
 					"doesn't have a valid component factory to find the shape in.\n",
 					__func__, __func__ );
 
-				dofSet = Dictionary_Entry_Value_AsUnsignedInt( Dictionary_Get( linkSpecDict, "dofSet" ) );
+				dofSet = Dictionary_Entry_Value_AsUnsignedInt( Dictionary_Get( linkSpecDict, (Dictionary_Entry_Key)"dofSet" ) );
 				while ( dofSet >= self->linkedDofSetsCount ) { 
-					LinkedDofInfo_AddDofSet( linkedDofInfo );
+					LinkedDofInfo_AddDofSet( linkedDofInfo  );
 				}
 				
-				shape = Stg_ComponentFactory_ConstructByName( context->CF, shapeStr, Stg_Shape, True, data );
+				shape = Stg_ComponentFactory_ConstructByName( context->CF, (Name)shapeStr, Stg_Shape, True, data  );
 				
 				for ( lNode_I = 0; lNode_I < Mesh_GetLocalSize( self->mesh, MT_VERTEX ); lNode_I++ ) {
 					if ( Stg_Shape_IsCoordInside( shape, Mesh_GetVertex( self->mesh, lNode_I ) ) ) {
@@ -360,8 +360,8 @@ void _LinkedDofInfo_Build( void* linkedD
 					}
 				}	
 			}
-			else if ( ( wallPairVal = Dictionary_Get( linkSpecDict, "wallPair" ) ) ) {
-				char*		wallPairStr = Dictionary_Entry_Value_AsString( wallPairVal );
+			else if ( ( wallPairVal = Dictionary_Get( linkSpecDict, (Dictionary_Entry_Key)"wallPair" ) ) ) {
+				char*		wallPairStr = Dictionary_Entry_Value_AsString( wallPairVal  );
 				Index		dofSetStart_I = self->linkedDofSetsCount;
 				Index		dofSet_I = 0;
 				Index		numWallNodes;
@@ -386,7 +386,7 @@ void _LinkedDofInfo_Build( void* linkedD
 					secondSet = RegularMeshUtils_CreateGlobalTopSet( self->mesh );
 				}
 				else {
-					Stream*	errorStr = Journal_Register( Error_Type, self->type );
+					Stream*	errorStr = Journal_Register( Error_Type, (Name)self->type  );
 					Journal_Printf( errorStr, "Error in %s: unknown wall pair string \"%s\" given. "
 						"Exiting.\n", __func__, wallPairStr );
 					exit(EXIT_FAILURE);
@@ -448,7 +448,7 @@ Index LinkedDofInfo_AddDofSet( void* lin
 
 void LinkedDofInfo_AddDofToSet( void* linkedDofInfo, Index linkedDofSet_I, Node_Index node_I, Dof_Index nodeLocalDof_I ) {
 	LinkedDofInfo*	self = (LinkedDofInfo*)linkedDofInfo;
-	Stream*			errorStr = Journal_Register( Error_Type, self->type );
+	Stream*			errorStr = Journal_Register( Error_Type, (Name)self->type  );
 	
 	Journal_Firewall( node_I < self->dofLayout->_numItemsInLayout, errorStr, "Error- in %s: tried to add a dof at a "
 		"node that doesn't exist.\n", __func__ );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/OperatorFeVariable.c
--- a/Discretisation/src/OperatorFeVariable.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/OperatorFeVariable.c	Thu Jan 14 17:42:23 2010 +1100
@@ -60,7 +60,7 @@ OperatorFeVariable* OperatorFeVariable_N
 	Name				operatorName )
 {
 	FeVariable*	feVariable = (FeVariable*) _feVariable;
-	Stream*		errorStream = Journal_Register( Error_Type, OperatorFeVariable_Type );
+	Stream*		errorStream = Journal_Register( Error_Type, (Name)OperatorFeVariable_Type  );
 
 	Journal_Firewall( feVariable != NULL, errorStream, "In func %s: Trying to operate on NULL field.\n", __func__ );
        	
@@ -93,7 +93,7 @@ OperatorFeVariable* OperatorFeVariable_N
 	Operator*		ownOperator )
 {
 	FeVariable*	feVariable = (FeVariable*) _feVariable;
-	Stream*		errorStream = Journal_Register( Error_Type, OperatorFeVariable_Type );
+	Stream*		errorStream = Journal_Register( Error_Type, (Name)OperatorFeVariable_Type  );
 
 	Journal_Firewall( feVariable != NULL, errorStream, "In func %s: Trying to operate on NULL field.\n", __func__ );
        	
@@ -127,7 +127,7 @@ OperatorFeVariable* OperatorFeVariable_N
 	Name				operatorName )
 {
 	FeVariable*	feVariableList[2];
-	Stream*		errorStream = Journal_Register( Error_Type, OperatorFeVariable_Type );
+	Stream*		errorStream = Journal_Register( Error_Type, (Name)OperatorFeVariable_Type  );
 	
 	Journal_Firewall( _feVariable1 != NULL, errorStream, "In func %s: First field to operate on is NULL.\n", __func__ );
 	Journal_Firewall( _feVariable2 != NULL, errorStream, "In func %s: Second field to operate on is NULL.\n", __func__ );
@@ -228,7 +228,7 @@ void _OperatorFeVariable_Init( void* oFe
 	OperatorFeVariable*	self = (OperatorFeVariable*) oFeVar;
 	FeVariable*				feVariable;
 	Index						feVariable_I;
-	Stream*					errorStream = Journal_Register( Error_Type, self->type );
+	Stream*					errorStream = Journal_Register( Error_Type, (Name)self->type  );
 
 	/* Assign values to object */
 	self->feVariableCount = feVariableCount;
@@ -301,16 +301,16 @@ void _OperatorFeVariable_AssignFromXML( 
 
 	fV_Register = self->context->fieldVariable_Register;
 
-	operatorName = Stg_ComponentFactory_GetString( cf, self->name, "Operator", "" );
+	operatorName = Stg_ComponentFactory_GetString( cf, self->name, (Dictionary_Entry_Key)"Operator", ""  );
 
-	list = Dictionary_Get( dictionary, "FeVariables" );
+	list = Dictionary_Get( dictionary, (Dictionary_Entry_Key)"FeVariables" );
 	
-	feVariableCount = ( list ? Dictionary_Entry_Value_GetCount(list) : 1 );
+	feVariableCount = ( list ? Dictionary_Entry_Value_GetCount(list) : 1  );
 	feVariableList = Memory_Alloc_Array( FeVariable*, feVariableCount, "FeVars" );
 
 	for ( feVariable_I = 0 ; feVariable_I < feVariableCount ; feVariable_I++ ) {
 		feVariableName = (list ?  Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( list, feVariable_I ) ) :
-			Dictionary_GetString( dictionary, "FeVariable" ) );
+			Dictionary_GetString( dictionary, (Dictionary_Entry_Key)"FeVariable" )  );
 
 		/* Check in fV_Register first before assuming in LiveComponentRegister */
 		Journal_PrintfL( cf->infoStream, 2, "Looking for FeVariable '%s' in fieldVariable_Register.\n", feVariableName );
@@ -318,10 +318,10 @@ void _OperatorFeVariable_AssignFromXML( 
 		
 		if ( !feVariableList[feVariable_I] )
 			feVariableList[feVariable_I] = 
-		Stg_ComponentFactory_ConstructByName( cf, feVariableName, FeVariable, True, data ); 
+		Stg_ComponentFactory_ConstructByName( cf, (Name)feVariableName, FeVariable, True, data ); 
 	}
 
-	_FeVariable_Init( (FeVariable*) self, feVariableList[0]->feMesh, feVariableList[0]->geometryMesh, feVariableList[0]->dofLayout, NULL, NULL, NULL, NULL, False, False );
+	_FeVariable_Init( (FeVariable* ) self, feVariableList[0]->feMesh, feVariableList[0]->geometryMesh, feVariableList[0]->dofLayout, NULL, NULL, NULL, NULL, False, False );
 	_OperatorFeVariable_Init( self, operatorName, feVariableCount, feVariableList, NULL );
 
 	Memory_Free( feVariableList );
@@ -330,7 +330,7 @@ void _OperatorFeVariable_Build( void* fe
 void _OperatorFeVariable_Build( void* feVariable, void* data ) {
 	OperatorFeVariable*	self = (OperatorFeVariable*) feVariable;
 	Index						feVariable_I;
-	Stream*					errorStream = Journal_Register( Error_Type, self->type );
+	Stream*					errorStream = Journal_Register( Error_Type, (Name)self->type  );
 
    _FieldVariable_Build( self, data );
    
@@ -385,9 +385,9 @@ void _OperatorFeVariable_Initialise( voi
 		Stg_Component_Initialise( self->feVariableList[ feVariable_I ] , data, False );
 
    /* also include check to see if this fevariable should be checkpointed, just incase it didn't go through the fieldvariable construct phase */ 
-   feVarsList = Dictionary_Get( context->dictionary, "fieldVariablesToCheckpoint" );
-   if ( NULL == feVarsList ) {
-      feVarsList = Dictionary_Get( context->dictionary, "FieldVariablesToCheckpoint" );
+   feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"fieldVariablesToCheckpoint" );
+   if ( NULL == feVarsList  ) {
+      feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"FieldVariablesToCheckpoint" );
    }
    if (feVarsList != NULL ) {
       Index                    listLength = Dictionary_Entry_Value_GetCount( feVarsList );
@@ -395,7 +395,7 @@ void _OperatorFeVariable_Initialise( voi
       Dictionary_Entry_Value*  feVarDictValue = NULL;
       char*                    fieldVariableName;
    
-      for ( var_I = 0; var_I < listLength; var_I++ ) {
+      for ( var_I = 0; var_I < listLength; var_I++  ) {
          feVarDictValue = Dictionary_Entry_Value_GetElement( feVarsList, var_I );
          fieldVariableName = Dictionary_Entry_Value_AsString( feVarDictValue ); 
          if ( 0 == strcmp( self->name, fieldVariableName ) ) {
@@ -407,9 +407,9 @@ void _OperatorFeVariable_Initialise( voi
 
    feVarsList = NULL;
    /** also include check to see if this fevariable should be saved for analysis purposes */ 
-   feVarsList = Dictionary_Get( context->dictionary, "fieldVariablesToSave" );
-   if ( NULL == feVarsList ) {
-      feVarsList = Dictionary_Get( context->dictionary, "FieldVariablesToSave" );
+   feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"fieldVariablesToSave" );
+   if ( NULL == feVarsList  ) {
+      feVarsList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)"FieldVariablesToSave" );
    }
    if (feVarsList != NULL ) {
       Index                    listLength = Dictionary_Entry_Value_GetCount( feVarsList );
@@ -417,7 +417,7 @@ void _OperatorFeVariable_Initialise( voi
       Dictionary_Entry_Value*  feVarDictValue = NULL;
       char*                    fieldVariableName;
    
-      for ( var_I = 0; var_I < listLength; var_I++ ) {
+      for ( var_I = 0; var_I < listLength; var_I++  ) {
          feVarDictValue = Dictionary_Entry_Value_GetElement( feVarsList, var_I );
          fieldVariableName = Dictionary_Entry_Value_AsString( feVarDictValue ); 
          if ( 0 == strcmp( self->name, fieldVariableName ) ) {
@@ -440,9 +440,9 @@ void _OperatorFeVariable_Destroy( void* 
 
 void _OperatorFeVariable_SetFunctions( void* feVariable ) {
 	OperatorFeVariable* self = (OperatorFeVariable*) feVariable;
-	Stream*             error = Journal_Register( Error_Type, self->type );
+	Stream*             error = Journal_Register( Error_Type, (Name)self->type );
 
-	if ( self->useGradient ) {
+	if ( self->useGradient  ) {
 		Journal_Firewall( self->feVariableCount == 1, error, "Cannot use gradient operators for multiple variables.\n" );
 		self->_interpolateWithinElement = OperatorFeVariable_GradientInterpolationFunc;
 		self->_getValueAtNode = OperatorFeVariable_GradientValueAtNodeFunc;
@@ -536,7 +536,7 @@ InterpolationResult _OperatorFeVariable_
 		validToInterpolateInShadowSpace = _OperatorFeVariable_CheckIfValidToInterpolateInShadowSpace(self);	
 			
 		if ( False == validToInterpolateInShadowSpace ) {
-			Stream* warningStr = Journal_Register( Error_Type, self->type );
+			Stream* warningStr = Journal_Register( Error_Type, (Name)self->type  );
 			Journal_Printf( warningStr, "Warning - in %s, for OperatorFeVar \"%s\": user asking to "
 				"interpolate a value at "
 				"coord (%g,%g,%g), which is in shadow space, but "
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/P1.c
--- a/Discretisation/src/P1.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/P1.c	Thu Jan 14 17:42:23 2010 +1100
@@ -108,7 +108,7 @@ void _P1_Print( void* elementType, Strea
 	
 	/* Set the Journal for printing informations */
 	Stream* elementTypeStream;
-	elementTypeStream = Journal_Register( InfoStream_Type, "P1Stream" );
+	elementTypeStream = Journal_Register( InfoStream_Type, (Name)"P1Stream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "P1 (ptr): (%p)\n", self );
@@ -197,7 +197,7 @@ void P1_EvalLocalDerivs( void* elementTy
 }
 
 int _P1_SurfaceNormal( void* elementType, unsigned element_I, unsigned dim, double* xi, double* normal ) {
-	Stream* errStream = Journal_Register( ErrorStream_Type, ElementType_Type );
+	Stream* errStream = Journal_Register( ErrorStream_Type, (Name)ElementType_Type  );
 
 	Journal_Printf( errStream, "surface normal function not implemented for this element type.\n" );
 	assert( 0 );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/RegularBilinear.c
--- a/Discretisation/src/RegularBilinear.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/RegularBilinear.c	Thu Jan 14 17:42:23 2010 +1100
@@ -109,7 +109,7 @@ void _RegularBilinear_Print( void* eleme
 	
 	/* Set the Journal for printing informations */
 	Stream* elementTypeStream;
-	elementTypeStream = Journal_Register( InfoStream_Type, "RegularBilinearStream" );
+	elementTypeStream = Journal_Register( InfoStream_Type, (Name)"RegularBilinearStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "RegularBilinear (ptr): (%p)\n", self );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/RegularTrilinear.c
--- a/Discretisation/src/RegularTrilinear.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/RegularTrilinear.c	Thu Jan 14 17:42:23 2010 +1100
@@ -110,7 +110,7 @@ void _RegularTrilinear_Print( void* elem
 	
 	/* Set the Journal for printing informations */
 	Stream* elementTypeStream;
-	elementTypeStream = Journal_Register( InfoStream_Type, "RegularTrilinearStream" );
+	elementTypeStream = Journal_Register( InfoStream_Type, (Name)"RegularTrilinearStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "RegularTrilinear (ptr): (%p)\n", self );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/ShapeFeVariable.c
--- a/Discretisation/src/ShapeFeVariable.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/ShapeFeVariable.c	Thu Jan 14 17:42:23 2010 +1100
@@ -133,7 +133,7 @@ void _ShapeFeVariable_AssignFromXML( voi
 
 	_FeVariable_AssignFromXML( self, cf, data );
 
-	_ShapeFeVariable_Init( self, Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Shape", Stg_Shape,  True, data )  ) ;
+	_ShapeFeVariable_Init( self, Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Shape", Stg_Shape, True, data )   ) ;
 }
 
 void _ShapeFeVariable_Build( void* shapeFeVariable, void* data ) {
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/TrilinearElementType.c
--- a/Discretisation/src/TrilinearElementType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/TrilinearElementType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -121,7 +121,7 @@ void _TrilinearElementType_Init( Triline
 	}
 
 	/* Set up the tetrahedral indices. */
-	self->tetInds = Memory_Alloc_2DArray( unsigned, 10, 4, "Mesh_HexType::tetInds" );
+	self->tetInds = Memory_Alloc_2DArray( unsigned, 10, 4, (Name)"Mesh_HexType::tetInds" );
 	self->tetInds[0][0] = 0; self->tetInds[0][1] = 1; self->tetInds[0][2] = 2; self->tetInds[0][3] = 4;
 	self->tetInds[1][0] = 1; self->tetInds[1][1] = 2; self->tetInds[1][2] = 3; self->tetInds[1][3] = 7;
 	self->tetInds[2][0] = 1; self->tetInds[2][1] = 4; self->tetInds[2][2] = 5; self->tetInds[2][3] = 7;
@@ -138,7 +138,7 @@ void _TrilinearElementType_Delete( void*
 	TrilinearElementType* self = (TrilinearElementType*)elementType;
 	
 	/* Stg_Class_Delete parent*/
-	_ElementType_Delete( self );
+	_ElementType_Delete( self  );
 }
 
 void _TrilinearElementType_Print( void* elementType, Stream* stream ) {
@@ -166,7 +166,7 @@ void _TrilinearElementType_Initialise( v
 	TrilinearElementType* 	self = (TrilinearElementType*)elementType;
 	unsigned**		faceNodes;
 
-	faceNodes = Memory_Alloc_2DArray( unsigned, 6, 4, "node indices for element faces" );
+	faceNodes = Memory_Alloc_2DArray( unsigned, 6, 4, (Name)"node indices for element faces"  );
 
 	faceNodes[0][0] = 0; faceNodes[0][1] = 1; faceNodes[0][2] = 4; faceNodes[0][3] = 5;
 	/* the top face */
@@ -179,7 +179,7 @@ void _TrilinearElementType_Initialise( v
 	self->faceNodes = faceNodes;
 
 	self->evaluatedShapeFunc = Memory_Alloc_Array( double, self->nodeCount, "evaluatedShapeFuncs" );
-	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, "localShapeFuncDerivitives" );
+	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, (Name)"localShapeFuncDerivitives"  );
 
 }
 	
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/TrilinearInnerElType.c
--- a/Discretisation/src/TrilinearInnerElType.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/TrilinearInnerElType.c	Thu Jan 14 17:42:23 2010 +1100
@@ -120,7 +120,7 @@ void _TrilinearInnerElType_Init( Triline
 	}
 
 	/* Set up the tetrahedral indices. */
-	self->tetInds = Memory_Alloc_2DArray( unsigned, 10, 4, "Mesh_HexType::tetInds" );
+	self->tetInds = Memory_Alloc_2DArray( unsigned, 10, 4, (Name)"Mesh_HexType::tetInds" );
 	self->tetInds[0][0] = 0; self->tetInds[0][1] = 1; self->tetInds[0][2] = 2; self->tetInds[0][3] = 4;
 	self->tetInds[1][0] = 1; self->tetInds[1][1] = 2; self->tetInds[1][2] = 3; self->tetInds[1][3] = 7;
 	self->tetInds[2][0] = 1; self->tetInds[2][1] = 4; self->tetInds[2][2] = 5; self->tetInds[2][3] = 7;
@@ -137,7 +137,7 @@ void _TrilinearInnerElType_Delete( void*
 	TrilinearInnerElType* self = (TrilinearInnerElType*)elementType;
 
 	/* Stg_Class_Delete parent*/
-	_ElementType_Delete( self );
+	_ElementType_Delete( self  );
 }
 
 void _TrilinearInnerElType_Print( void* elementType, Stream* stream ) {
@@ -308,7 +308,7 @@ void _TrilinearInnerElType_ConvertGlobal
 }*/
 
 int _TrilinearInnerElType_SurfaceNormal( void* elementType, unsigned element_I, unsigned dim, double* xi, double* normal ) {
-	Stream* errStream = Journal_Register( ErrorStream_Type, ElementType_Type );
+	Stream* errStream = Journal_Register( ErrorStream_Type, (Name)ElementType_Type  );
 
 	Journal_Printf( errStream, "Surface normal function not yet implemented for this element type.\n" );
 	assert( 0 );
diff -r fe089b369b12 -r c3b4e4b75a06 Discretisation/src/Triquadratic.c
--- a/Discretisation/src/Triquadratic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/Discretisation/src/Triquadratic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -112,7 +112,7 @@ void _Triquadratic_Print( void* elementT
 
 	/* Set the Journal for printing informations */
 	Stream* elementTypeStream;
-	elementTypeStream = Journal_Register( InfoStream_Type, "TriquadraticStream" );
+	elementTypeStream = Journal_Register( InfoStream_Type, (Name)"TriquadraticStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "Triquadratic (ptr): (%p)\n", self );
@@ -129,7 +129,7 @@ void _Triquadratic_Initialise( void* ele
 	Triquadratic*	self 		= (Triquadratic*)elementType;
 	unsigned**	faceNodes;
 
-	faceNodes = Memory_Alloc_2DArray( unsigned, 6, 9, "node indices for element faces" );
+	faceNodes = Memory_Alloc_2DArray( unsigned, 6, 9, (Name)"node indices for element faces"  );
 
 	faceNodes[0][0] =  0; faceNodes[0][1] =  1; faceNodes[0][2] =  2;
 	faceNodes[0][3] =  9; faceNodes[0][4] = 10; faceNodes[0][5] = 11;
@@ -158,7 +158,7 @@ void _Triquadratic_Initialise( void* ele
 	self->faceNodes = faceNodes;
 
 	self->evaluatedShapeFunc = Memory_Alloc_Array( double, self->nodeCount, "evaluatedShapeFuncs" );
-	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, "evaluatedShapeFuncDerivatives" );
+	self->GNi = Memory_Alloc_2DArray( double, self->dim, self->nodeCount, (Name)"evaluatedShapeFuncDerivatives"  );
 }
 
 void _Triquadratic_Execute( void* elementType, void* data ) {
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c	Thu Jan 14 17:42:23 2010 +1100
@@ -233,7 +233,7 @@ void* _AdvectionDiffusionSLE_DefaultNew(
 
 void _AdvectionDiffusionSLE_AssignFromXML( void* sle, Stg_ComponentFactory* cf, void* data ) {
 	AdvectionDiffusionSLE*	self = (AdvectionDiffusionSLE*) sle;
-	Stream*						error = Journal_Register( Error_Type, self->type );
+	Stream*						error = Journal_Register( Error_Type, (Name)self->type  );
 	FeVariable*					phiField;
 	ForceVector*				residual;
 	Stg_Component*				massMatrix;
@@ -252,13 +252,13 @@ void _AdvectionDiffusionSLE_AssignFromXM
 	assert( fieldVariable_Register );
 
 	/* Get Dependency Stg_Components */
-	phiField   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "PhiField",   FeVariable,    True, data );
-	residual   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Residual",   ForceVector,   True, data );
-	massMatrix =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "MassMatrix", Stg_Component, True, data );
+	phiField   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"PhiField", FeVariable, True, data  );
+	residual   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Residual", ForceVector, True, data  );
+	massMatrix =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"MassMatrix", Stg_Component, True, data  );
 
-	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
+	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"dim", 0  );
 
-	courantFactor = Stg_ComponentFactory_GetDouble( cf, self->name, "courantFactor", 0.5 );
+	courantFactor = Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"courantFactor", 0.5  );
 	Journal_Firewall( 0.0 < courantFactor && courantFactor <= 1.0, 
 		error, "In func %s: CourantFactor read in from dictionary = %2.4f - This must be from 0 - 1.\n", 
 		__func__, courantFactor );
@@ -420,7 +420,7 @@ void _AdvectionDiffusionSLE_Initialise( 
 	
 	Stg_Component_Initialise( self->phiDotField, data, False );
 
-/* 	Stream* stream = Journal_Register( Info_Type, self->type ); */
+/* 	Stream* stream = Journal_Register( Info_Type, (Name)self->type  ); */
 /* 	FeVariable_PrintLocalDiscreteValues( self->phiDotField, stream ); */
 	
 	if ( False == context->loadFromCheckPoint ) {
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/src/Finalise.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -50,7 +50,7 @@
 #include <stdio.h>
 
 Bool StgFEM_SLE_ProvidedSystems_AdvectionDiffusion_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	return True;
 }
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/src/Init.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -57,16 +57,16 @@ Bool StgFEM_SLE_ProvidedSystems_Advectio
 Bool StgFEM_SLE_ProvidedSystems_AdvectionDiffusion_Init( int* argc, char** argv[] ) {
 	Stg_ComponentRegister* componentRegister = Stg_ComponentRegister_Get_ComponentRegister();
 
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	/* initialise this level's streams */
 	StgFEM_SLE_ProvidedSystems_AdvectionDiffusion_Debug = Stream_RegisterChild( StgFEM_SLE_Debug,
 		"ProvidedSystems_AdvectionDiffusion" );
 
-	Stg_ComponentRegister_Add( componentRegister, AdvectionDiffusionSLE_Type, "0", _AdvectionDiffusionSLE_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, AdvDiffResidualForceTerm_Type, "0", _AdvDiffResidualForceTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, LumpedMassMatrixForceTerm_Type, "0", _LumpedMassMatrixForceTerm_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, AdvDiffMulticorrector_Type, "0", _AdvDiffMulticorrector_DefaultNew );
+	Stg_ComponentRegister_Add( componentRegister, AdvectionDiffusionSLE_Type, (Name)"0", _AdvectionDiffusionSLE_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, AdvDiffResidualForceTerm_Type, (Name)"0", _AdvDiffResidualForceTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, LumpedMassMatrixForceTerm_Type, (Name)"0", _LumpedMassMatrixForceTerm_DefaultNew  );
+	Stg_ComponentRegister_Add( componentRegister, AdvDiffMulticorrector_Type, (Name)"0", _AdvDiffMulticorrector_DefaultNew  );
 
 	RegisterParent( AdvectionDiffusionSLE_Type,     SystemLinearEquations_Type );
 	RegisterParent( AdvDiffResidualForceTerm_Type,  ForceTerm_Type );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c	Thu Jan 14 17:42:23 2010 +1100
@@ -150,8 +150,8 @@ void _AdvDiffMulticorrector_AssignFromXM
 	/* Construct Parent */
 	_SLE_Solver_AssignFromXML( self, cf, data );
 
-	gamma = Stg_ComponentFactory_GetDouble( cf, self->name, "gamma", 0.5 );
-	multiCorrectorIterations = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "multiCorrectorIterations", 2 );
+	gamma = Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"gamma", 0.5  );
+	multiCorrectorIterations = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"multiCorrectorIterations", 2  );
 
 	_AdvDiffMulticorrector_Init( self, gamma, multiCorrectorIterations );
 
@@ -238,7 +238,7 @@ void ViewPETScVector( Vec vec, Stream* s
 	unsigned	entry_i;
 
 	if( !stream )
-		stream = Journal_Register( Info_Type, "tmp" );
+		stream = Journal_Register( Info_Type, (Name)"tmp"  );
 
 	VecGetLocalSize( vec, &size );
 	VecGetArray( vec, &array );
@@ -337,7 +337,7 @@ void AdvDiffMulticorrector_CalculatePhiD
 	else if ( Stg_Class_IsInstance( massMatrix, StiffnessMatrix_Type ) )
 		_AdvDiffMulticorrector_CalculatePhiDot_Implicit( self, sle, deltaPhiDot );
 	else {
-		Journal_Firewall( False, Journal_Register( Error_Type, self->type ),
+		Journal_Firewall( False, Journal_Register( Error_Type, (Name)self->type  ),
 				"Error in func '%s': Cannot understand type '%s' for mass matrix '%s'.\n",
 				__func__, massMatrix->name, massMatrix->type );
 	}
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c	Thu Jan 14 17:42:23 2010 +1100
@@ -147,7 +147,7 @@ void __AdvDiffResidualForceTerm_UpdateLo
 		}
 	}
        
-	sle->advDiffResidualForceTerm->GNx = Memory_Alloc_2DArray(double, dim, max_elementNodeCount, "(SUPG): Global Shape Function Derivatives");
+	sle->advDiffResidualForceTerm->GNx = Memory_Alloc_2DArray( double, dim, max_elementNodeCount, (Name)"(SUPG): Global Shape Function Derivatives" );
 	sle->advDiffResidualForceTerm->phiGrad = Memory_Alloc_Array(double, dim, "(SUPG): Gradient of the Advected Scalar");
 	sle->advDiffResidualForceTerm->Ni = Memory_Alloc_Array(double, max_elementNodeCount, "(SUPG): Gradient of the Advected Scalar");
 	sle->advDiffResidualForceTerm->SUPGNi = Memory_Alloc_Array(double, max_elementNodeCount, "(SUPG): Upwinded Shape Function");
@@ -219,9 +219,9 @@ void _AdvDiffResidualForceTerm_AssignFro
 	/* Construct Parent */
 	_ForceTerm_AssignFromXML( self, cf, data );
 
-	velocityField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityField", FeVariable, True,  data );
-	diffusivityVariable = Stg_ComponentFactory_ConstructByKey( cf, self->name, "DiffusivityVariable", Variable,   False, data );
-	upwindParamFuncName = Stg_ComponentFactory_GetString( cf, self->name, "UpwindXiFunction", "Exact" );
+	velocityField = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"VelocityField", FeVariable, True, data  );
+	diffusivityVariable = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"DiffusivityVariable", Variable, False, data  );
+	upwindParamFuncName = Stg_ComponentFactory_GetString( cf, self->name, (Dictionary_Entry_Key)"UpwindXiFunction", "Exact"  );
 
 	if ( strcasecmp( upwindParamFuncName, "DoublyAsymptoticAssumption" ) == 0 )
 		upwindFuncType = DoublyAsymptoticAssumption;
@@ -230,9 +230,9 @@ void _AdvDiffResidualForceTerm_AssignFro
 	else if ( strcasecmp( upwindParamFuncName, "Exact" ) == 0 )
 		upwindFuncType = Exact;
 	else 
-		Journal_Firewall( False, Journal_Register( Error_Type, self->type ), "Cannot understand '%s'\n", upwindParamFuncName );
+		Journal_Firewall( False, Journal_Register( Error_Type, (Name)self->type  ), "Cannot understand '%s'\n", upwindParamFuncName );
 
-	defaultDiffusivity = Stg_ComponentFactory_GetDouble( cf, self->name, "defaultDiffusivity", 1.0 );
+	defaultDiffusivity = Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"defaultDiffusivity", 1.0  );
 
 	_AdvDiffResidualForceTerm_Init( self, velocityField, diffusivityVariable, defaultDiffusivity, upwindFuncType );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/tests/LumpedMassMatrixSuite.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/tests/LumpedMassMatrixSuite.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/tests/LumpedMassMatrixSuite.c	Thu Jan 14 17:42:23 2010 +1100
@@ -145,22 +145,22 @@ void LumpedMassMatrixSuite_TestLumpedMas
 
 	/* Read input */
 	dictionary = Dictionary_New();
-	Dictionary_Add( dictionary, "outputPath", Dictionary_Entry_Value_FromString( "./output" ) );
-	Dictionary_Add( dictionary, "rank", Dictionary_Entry_Value_FromUnsignedInt( data->rank ) );
-	Dictionary_Add( dictionary, "numProcessors", Dictionary_Entry_Value_FromUnsignedInt( data->nProcs ) );
-	Dictionary_Add( dictionary, "gaussParticlesX", Dictionary_Entry_Value_FromUnsignedInt( 2 ) );
-	Dictionary_Add( dictionary, "gaussParticlesY", Dictionary_Entry_Value_FromUnsignedInt( 2 ) );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"outputPath", Dictionary_Entry_Value_FromString( "./output" )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"rank", Dictionary_Entry_Value_FromUnsignedInt( data->rank )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"numProcessors", Dictionary_Entry_Value_FromUnsignedInt( data->nProcs )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"gaussParticlesX", Dictionary_Entry_Value_FromUnsignedInt( 2 )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"gaussParticlesY", Dictionary_Entry_Value_FromUnsignedInt( 2 ) );
 
 	bcList = Dictionary_Entry_Value_NewList();
-	currBC = Dictionary_Entry_Value_NewStruct();
-	Dictionary_Entry_Value_AddMember( currBC, "name", Dictionary_Entry_Value_FromString( "phi" ) );
-	Dictionary_Entry_Value_AddMember( currBC, "type", Dictionary_Entry_Value_FromString( "double" ) );
-	Dictionary_Entry_Value_AddMember( currBC, "value", Dictionary_Entry_Value_FromDouble( -1.0f ) );
+	currBC = Dictionary_Entry_Value_NewStruct( );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"name", Dictionary_Entry_Value_FromString( "phi" )  );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"type", Dictionary_Entry_Value_FromString( "double" )  );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"value", Dictionary_Entry_Value_FromDouble( -1.0f )  );
 	Dictionary_Entry_Value_AddElement( bcList, currBC );
 	currBC = Dictionary_Entry_Value_NewStruct();
-	Dictionary_Entry_Value_AddMember( currBC, "wall", Dictionary_Entry_Value_FromString( "left" ) );
-	Dictionary_Entry_Value_AddMember( currBC, "variables", bcList );
-	Dictionary_Add( dictionary, "boundaryCondition", currBC );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"wall", Dictionary_Entry_Value_FromString( "left" )  );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"variables", bcList  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"boundaryCondition", currBC  );
 
 	/* Create Context */
 	context = FiniteElementContext_New( "context", 0,0, data->comm, dictionary );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/tests/UpwindXiSuite.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/tests/UpwindXiSuite.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/tests/UpwindXiSuite.c	Thu Jan 14 17:42:23 2010 +1100
@@ -68,7 +68,7 @@ void UpwindXiSuite_Test( UpwindXiSuiteDa
 	sprintf( outputFilename, "output_%2d.dat", rank );
 
 	Journal_Enable_TypedStream( InfoStream_Type, True );
-	dataStream = Journal_Register( Info_Type, "DataStream" );
+	dataStream = Journal_Register( Info_Type, (Name)"DataStream"  );
 	Stream_RedirectFile( dataStream, outputFilename );
 		
 	Journal_Printf( dataStream, "# File to compare code with Brooks, Hughes 1982 - Fig 3.3\n");
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testLumpedMassMatrix.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testLumpedMassMatrix.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testLumpedMassMatrix.c	Thu Jan 14 17:42:23 2010 +1100
@@ -152,7 +152,7 @@ int main( int argc, char* argv[] ) {
 	StgFEM_SLE_ProvidedSystems_AdvectionDiffusion_Init( &argc, &argv );
 	MPI_Barrier( CommWorld ); /* Ensures copyright info always come first in output */
 	
-	stream = Journal_Register (Info_Type, "myStream");
+	stream = Journal_Register( Info_Type, (Name)"myStream");
 
 	if( argc >= 2 ) {
 		procToWatch = atoi( argv[1] );
@@ -160,26 +160,26 @@ int main( int argc, char* argv[] ) {
 	else {
 		procToWatch = 0;
 	}
-	if( rank == procToWatch ) printf( "Watching rank: %i\n", rank );
+	if( rank == procToWatch  ) printf( "Watching rank: %i\n", rank );
 	
 	/* Read input */
 	dictionary = Dictionary_New();
-	Dictionary_Add( dictionary, "outputPath", Dictionary_Entry_Value_FromString( "./output" ) );
-	Dictionary_Add( dictionary, "rank", Dictionary_Entry_Value_FromUnsignedInt( rank ) );
-	Dictionary_Add( dictionary, "numProcessors", Dictionary_Entry_Value_FromUnsignedInt( numProcessors ) );
-	Dictionary_Add( dictionary, "gaussParticlesX", Dictionary_Entry_Value_FromUnsignedInt( 2 ) );
-	Dictionary_Add( dictionary, "gaussParticlesY", Dictionary_Entry_Value_FromUnsignedInt( 2 ) );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"outputPath", Dictionary_Entry_Value_FromString( "./output" )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"rank", Dictionary_Entry_Value_FromUnsignedInt( rank )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"numProcessors", Dictionary_Entry_Value_FromUnsignedInt( numProcessors )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"gaussParticlesX", Dictionary_Entry_Value_FromUnsignedInt( 2 )  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"gaussParticlesY", Dictionary_Entry_Value_FromUnsignedInt( 2 ) );
 	
 	bcList = Dictionary_Entry_Value_NewList();
-	currBC = Dictionary_Entry_Value_NewStruct();
-	Dictionary_Entry_Value_AddMember( currBC, "name", Dictionary_Entry_Value_FromString( "phi" ) );
-	Dictionary_Entry_Value_AddMember( currBC, "type", Dictionary_Entry_Value_FromString( "double" ) );
-	Dictionary_Entry_Value_AddMember( currBC, "value", Dictionary_Entry_Value_FromDouble( -1.0f ) );
+	currBC = Dictionary_Entry_Value_NewStruct( );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"name", Dictionary_Entry_Value_FromString( "phi" )  );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"type", Dictionary_Entry_Value_FromString( "double" )  );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"value", Dictionary_Entry_Value_FromDouble( -1.0f )  );
 	Dictionary_Entry_Value_AddElement( bcList, currBC );
 	currBC = Dictionary_Entry_Value_NewStruct();
-	Dictionary_Entry_Value_AddMember( currBC, "wall", Dictionary_Entry_Value_FromString( "left" ) );
-	Dictionary_Entry_Value_AddMember( currBC, "variables", bcList );
-	Dictionary_Add( dictionary, "boundaryCondition", currBC );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"wall", Dictionary_Entry_Value_FromString( "left" )  );
+	Dictionary_Entry_Value_AddMember( currBC, (Dictionary_Entry_Key)"variables", bcList  );
+	Dictionary_Add( dictionary, (Dictionary_Entry_Key)"boundaryCondition", currBC  );
 
 	/* Create Context */
 	context = FiniteElementContext_New( "context", 0,0, MPI_COMM_WORLD, dictionary );
@@ -224,7 +224,7 @@ int main( int argc, char* argv[] ) {
 		False, False, False, fV_Register );
 	
 	/* Create Stream */
-	outputStream = Journal_Register( InfoStream_Type, CURR_MODULE_NAME );
+	outputStream = Journal_Register( InfoStream_Type, (Name)CURR_MODULE_NAME  );
 	Stream_RedirectFile( outputStream, "output/output.dat" );
 
 	/* Create Swarm */
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testUpwindXi.c
--- a/SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testUpwindXi.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/AdvectionDiffusion/tests/oldTesting/testUpwindXi.c	Thu Jan 14 17:42:23 2010 +1100
@@ -59,7 +59,7 @@ int main( int argc, char* argv[] ) {
 	StGermain_Init( &argc, &argv );
 
 	/* Create Data File */
-	dataStream    = Journal_Register( Info_Type, "DataStream" );
+	dataStream    = Journal_Register( Info_Type, (Name)"DataStream"  );
 	Stream_RedirectFile( dataStream, dataFileName );
 
 	Journal_Printf( dataStream, "# File to compare code with Brooks, Hughes 1982 - Fig 3.3\n");
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/Energy/src/Energy_SLE.c
--- a/SLE/ProvidedSystems/Energy/src/Energy_SLE.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/Energy/src/Energy_SLE.c	Thu Jan 14 17:42:23 2010 +1100
@@ -152,9 +152,9 @@ void _Energy_SLE_AssignFromXML( void* sl
 	/* Construct Parent */
 	_SystemLinearEquations_AssignFromXML( self, cf, data );
 
-	stiffMat    =  Stg_ComponentFactory_ConstructByKey( cf, self->name, StiffnessMatrix_Type, StiffnessMatrix, True, data  ) ;
-	solutionVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, SolutionVector_Type,  SolutionVector,  True, data  ) ;
-	fVector     =  Stg_ComponentFactory_ConstructByKey( cf, self->name, ForceVector_Type,     ForceVector,     True, data  ) ;
+	stiffMat    =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)StiffnessMatrix_Type, StiffnessMatrix, True, data   ) ;
+	solutionVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)SolutionVector_Type, SolutionVector, True, data   ) ;
+	fVector     =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)ForceVector_Type, ForceVector, True, data   ) ;
 
 	_Energy_SLE_Init( self, stiffMat, solutionVec, fVector );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/Energy/src/Finalise.c
--- a/SLE/ProvidedSystems/Energy/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/Energy/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -50,7 +50,7 @@
 #include <stdio.h>
 
 Bool StgFEM_SLE_ProvidedSystems_Energy_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	Stream_IndentBranch( StgFEM_SLE_ProvidedSystems_Energy_Debug );
 	Stream_UnIndentBranch( StgFEM_SLE_ProvidedSystems_Energy_Debug );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/Energy/src/Init.c
--- a/SLE/ProvidedSystems/Energy/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/Energy/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -57,13 +57,13 @@ such as streams etc */
 such as streams etc */
 Bool StgFEM_SLE_ProvidedSystems_Energy_Init( int* argc, char** argv[] ) {
 
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	/* initialise this level's streams */
 	StgFEM_SLE_ProvidedSystems_Energy_Debug = Stream_RegisterChild( StgFEM_SLE_Debug, "ProvidedSystems_Energy" );
 	
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Energy_SLE_Solver_Type , "0", Energy_SLE_Solver_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Energy_SLE_Type , "0", _Energy_SLE_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Energy_SLE_Solver_Type , (Name)"0", Energy_SLE_Solver_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), Energy_SLE_Type , "0", _Energy_SLE_DefaultNew );
 
 	RegisterParent( Energy_SLE_Type,        SystemLinearEquations_Type );
 	RegisterParent( Energy_SLE_Solver_Type, SLE_Solver_Type );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/StokesFlow/src/Finalise.c
--- a/SLE/ProvidedSystems/StokesFlow/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/StokesFlow/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -50,7 +50,7 @@
 #include <stdio.h>
 
 Bool StgFEM_SLE_ProvidedSystems_StokesFlow_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	Stream_IndentBranch( StgFEM_SLE_ProvidedSystems_StokesFlow_Debug );
 	Stream_UnIndentBranch( StgFEM_SLE_ProvidedSystems_StokesFlow_Debug );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/StokesFlow/src/Init.c
--- a/SLE/ProvidedSystems/StokesFlow/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/StokesFlow/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -55,16 +55,16 @@ such as streams etc */
 such as streams etc */
 Bool StgFEM_SLE_ProvidedSystems_StokesFlow_Init( int* argc, char** argv[] ) {
 
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	/* initialise this level's streams */
 	StgFEM_SLE_ProvidedSystems_StokesFlow_Debug = Stream_RegisterChild( StgFEM_SLE_Debug,
 		"ProvidedSystems_StokesFlow" );
 
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Stokes_SLE_Type , "0", _Stokes_SLE_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Stokes_SLE_UzawaSolver_Type , "0", _Stokes_SLE_UzawaSolver_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Stokes_SLE_PenaltySolver_Type , "0", Stokes_SLE_PenaltySolver_DefaultNew );  
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), UzawaPreconditionerTerm_Type , "0", _UzawaPreconditionerTerm_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Stokes_SLE_Type , (Name)"0", _Stokes_SLE_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), Stokes_SLE_UzawaSolver_Type , "0", _Stokes_SLE_UzawaSolver_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Stokes_SLE_PenaltySolver_Type , (Name)"0", Stokes_SLE_PenaltySolver_DefaultNew );  
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), UzawaPreconditionerTerm_Type , "0", _UzawaPreconditionerTerm_DefaultNew );
 
 	RegisterParent( Stokes_SLE_Type,               		SystemLinearEquations_Type );
 	RegisterParent( Stokes_SLE_PenaltySolver_Type, 		SLE_Solver_Type );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c
--- a/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c	Thu Jan 14 17:42:23 2010 +1100
@@ -208,16 +208,16 @@ void _Stokes_SLE_AssignFromXML( void* sl
 	/* Construct Parent */
 	_SystemLinearEquations_AssignFromXML( self, cf, data );
 
-	kStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "StressTensorMatrix",    StiffnessMatrix, True, data );
-	gStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "GradientMatrix",        StiffnessMatrix, True, data );
-	dStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "DivergenceMatrix",      StiffnessMatrix, False, data );
-	cStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "CompressibilityMatrix", StiffnessMatrix, False, data );
+	kStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"StressTensorMatrix", StiffnessMatrix, True, data  );
+	gStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"GradientMatrix", StiffnessMatrix, True, data  );
+	dStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"DivergenceMatrix", StiffnessMatrix, False, data  );
+	cStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"CompressibilityMatrix", StiffnessMatrix, False, data  );
 
-	uSolnVec  =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityVector",        SolutionVector,  True, data );
-	pSolnVec  =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "PressureVector",        SolutionVector,  True, data );
+	uSolnVec  =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"VelocityVector", SolutionVector, True, data  );
+	pSolnVec  =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"PressureVector", SolutionVector, True, data  );
 
-	fForceVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ForceVector",           ForceVector,     True, data );
-	hForceVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ContinuityForceVector", ForceVector,     True, data );
+	fForceVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ForceVector", ForceVector, True, data  );
+	hForceVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ContinuityForceVector", ForceVector, True, data  );
 
 	_Stokes_SLE_Init( self, kStiffMat, gStiffMat, dStiffMat, cStiffMat, uSolnVec, pSolnVec, fForceVec, hForceVec );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c
--- a/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c	Thu Jan 14 17:42:23 2010 +1100
@@ -248,13 +248,13 @@ void _Stokes_SLE_UzawaSolver_AssignFromX
 
 	_SLE_Solver_AssignFromXML( self, cf, data );
 
-	tolerance            = Stg_ComponentFactory_GetDouble( cf, self->name, "tolerance", 1.0e-5 );
-	maxUzawaIterations   = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "maxIterations", 1000 );
-	minUzawaIterations   = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "minIterations", 1 );
-	useAbsoluteTolerance = Stg_ComponentFactory_GetBool( cf, self->name, "useAbsoluteTolerance", False );
-	monitor              = Stg_ComponentFactory_GetBool( cf, self->name, "monitor", False );
+	tolerance            = Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"tolerance", 1.0e-5  );
+	maxUzawaIterations   = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"maxIterations", 1000  );
+	minUzawaIterations   = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"minIterations", 1  );
+	useAbsoluteTolerance = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"useAbsoluteTolerance", False  );
+	monitor              = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"monitor", False  );
 
-	preconditioner = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Preconditioner", StiffnessMatrix, False, data );
+	preconditioner = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Preconditioner", StiffnessMatrix, False, data  );
 
 	_Stokes_SLE_UzawaSolver_Init( self, preconditioner, maxUzawaIterations, minUzawaIterations, tolerance, useAbsoluteTolerance, monitor );
 
@@ -433,7 +433,7 @@ void _Stokes_SLE_UzawaSolver_Solve( void
 	double                  momentumEquationResidual;
 	
 	Iteration_Index         innerLoopIterations;
-	Stream*                 errorStream     = Journal_Register( Error_Type, Stokes_SLE_UzawaSolver_Type );
+	Stream*                 errorStream     = Journal_Register( Error_Type, (Name)Stokes_SLE_UzawaSolver_Type  );
 	
 	PetscInt		fVecSize, qTempVecSize, uVecSize, qVecSize;
 	PetscScalar		fVecNorm, qTempVecNorm, uVecNorm, rVecNorm, fTempVecNorm, uVecNormInf, qVecNorm, qVecNormInf;
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c
--- a/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -186,11 +186,11 @@ void _UzawaPreconditionerTerm_AssembleEl
 	velocityDofCount = kRowCount * kMatrix->dim;
 
 	/* Allocate Memory */
-	gElementMatrix = Memory_Alloc_2DArray( double, velocityDofCount, pressureDofCount, "g element matrix" );
+	gElementMatrix = Memory_Alloc_2DArray( double, velocityDofCount, pressureDofCount, (Name)"g element matrix"  );
 	memset( gElementMatrix[0], 0, sizeof(double) * velocityDofCount * pressureDofCount );
-	kElementMatrix = Memory_Alloc_2DArray( double, velocityDofCount, velocityDofCount, "k element matrix" );
+	kElementMatrix = Memory_Alloc_2DArray( double, velocityDofCount, velocityDofCount, (Name)"k element matrix"  );
 	memset( kElementMatrix[0], 0, sizeof(double) * velocityDofCount * velocityDofCount );
-	kInverseG      = Memory_Alloc_2DArray( double, velocityDofCount, pressureDofCount, "[ diag(K) ]^-1 G" );
+	kInverseG      = Memory_Alloc_2DArray( double, velocityDofCount, pressureDofCount, (Name)"[ diag(K) ]^-1 G"  );
 
 	/* Assemble Element G */
 	StiffnessMatrix_AssembleElement( gMatrix, lElement_I, _sle, context, gElementMatrix );
@@ -223,7 +223,7 @@ void _UzawaPreconditionerTerm_AssembleEl
 		double**               mElementMatrix;
 		StiffnessMatrix*       cMatrix        = sle->cStiffMat;
 		
-		mElementMatrix = Memory_Alloc_2DArray( double, pressureDofCount, pressureDofCount, "m element matrix" );
+		mElementMatrix = Memory_Alloc_2DArray( double, pressureDofCount, pressureDofCount, (Name)"m element matrix"  );
 		memset( mElementMatrix[0], 0, sizeof(double) * pressureDofCount * pressureDofCount );
 
 		StiffnessMatrix_AssembleElement( cMatrix, lElement_I, _sle, context, mElementMatrix );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/src/Finalise.c
--- a/SLE/ProvidedSystems/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -52,7 +52,7 @@
 #include <stdio.h>
 
 Bool StgFEM_SLE_ProvidedSystems_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	StgFEM_SLE_ProvidedSystems_Energy_Finalise();
 	StgFEM_SLE_ProvidedSystems_StokesFlow_Finalise();
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/ProvidedSystems/src/Init.c
--- a/SLE/ProvidedSystems/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/ProvidedSystems/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -54,7 +54,7 @@
 /** Initialises the Linear Algebra package, then any init for this package
 such as streams etc */
 Bool StgFEM_SLE_ProvidedSystems_Init( int* argc, char** argv[] ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	StgFEM_SLE_ProvidedSystems_Energy_Init( argc, argv );
 	StgFEM_SLE_ProvidedSystems_StokesFlow_Init( argc, argv );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/Assembler.c
--- a/SLE/SystemSetup/src/Assembler.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/Assembler.c	Thu Jan 14 17:42:23 2010 +1100
@@ -130,7 +130,7 @@ void _Assembler_Print( void* assembler, 
 	assert( self && Stg_CheckType( self, Assembler ) );
 	
 	/* Set the Journal for printing informations */
-	assemblerStream = Journal_Register( InfoStream_Type, "AssemblerStream" );
+	assemblerStream = Journal_Register( InfoStream_Type, (Name)"AssemblerStream"  );
 
 	/* Print parent */
 	Journal_Printf( stream, "Assembler (ptr): (%p)\n", self );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/Finalise.c
--- a/SLE/SystemSetup/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -51,7 +51,7 @@
 #include <stdio.h>
 
 Bool StgFEM_SLE_SystemSetup_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	Stream_IndentBranch( StgFEM_Debug );
 	Stream_UnIndentBranch( StgFEM_Debug );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/FiniteElementContext.c
--- a/SLE/SystemSetup/src/FiniteElementContext.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/FiniteElementContext.c	Thu Jan 14 17:42:23 2010 +1100
@@ -265,7 +265,7 @@ SystemLinearEquations* FiniteElementCont
 
 void _FiniteElementContext_AssignFromXML( void* context, Stg_ComponentFactory* cf, void* data ){
 	FiniteElementContext *self = (FiniteElementContext*) context;
-	Stream*  errorStream = Journal_Register( Error_Type, self->type );
+	Stream*  errorStream = Journal_Register( Error_Type, (Name)self->type  );
 
 	_DomainContext_AssignFromXML( context, cf, data );
 
@@ -273,13 +273,12 @@ void _FiniteElementContext_AssignFromXML
 
 	self->dt = 0.0f;
 	self->prevTimestepDt = 0.0;
-	self->limitTimeStepIncreaseRate = Dictionary_GetBool_WithDefault( self->dictionary, "limitTimeStepIncreaseRate", False );
-	self->maxTimeStepIncreasePercentage = Dictionary_GetDouble_WithDefault( self->dictionary,
-		"maxTimeStepIncreasePercentage", 10.0 );
+	self->limitTimeStepIncreaseRate = Dictionary_GetBool_WithDefault( self->dictionary, (Dictionary_Entry_Key)"limitTimeStepIncreaseRate", False  );
+	self->maxTimeStepIncreasePercentage = Dictionary_GetDouble_WithDefault( self->dictionary, (Dictionary_Entry_Key)"maxTimeStepIncreasePercentage", 10.0  );
 	Journal_Firewall( self->maxTimeStepIncreasePercentage >= 0, errorStream,
 		"Error - in %s(): maxTimeStepIncreasePercentage must be >= 0\n", __func__ );
 
-	self->maxTimeStepSize = Dictionary_GetDouble_WithDefault( self->dictionary, "maxTimeStepSize", 0.0 );
+	self->maxTimeStepSize = Dictionary_GetDouble_WithDefault( self->dictionary, (Dictionary_Entry_Key)"maxTimeStepSize", 0.0 );
 
 	_FiniteElementContext_Init( self );
 }
@@ -288,7 +287,7 @@ void _FiniteElementContext_Build( void* 
 	FiniteElementContext* self = (FiniteElementContext*)context;
 	SystemLinearEquations_Index sle_I;
 	
-	Stream_IndentBranch( StgFEM_Debug );
+	Stream_IndentBranch( StgFEM_Debug  );
 	Journal_DPrintf( self->debug, "In: %s()\n", __func__ );
 
 	/* build all the systems of linear equations */
@@ -435,7 +434,7 @@ void _FiniteElementContext_SaveFeVariabl
             Stg_asprintf( &feVarSaveFileName, "%s%s.%.5u.dat", feVarSaveFileNamePart, feVar->name, self->timeStep );
 #endif
             FeVariable_SaveToFile( feVar, feVarSaveFileName, 
-                   Dictionary_GetBool_WithDefault( self->dictionary, "saveCoordsWithFields", False ) );           
+                   Dictionary_GetBool_WithDefault( self->dictionary, (Dictionary_Entry_Key)"saveCoordsWithFields", False ) );           
 
             Memory_Free( feVarSaveFileName );
             Memory_Free( feVarSaveFileNamePart );
@@ -448,15 +447,15 @@ void _FiniteElementContext_SaveSwarms( v
 void _FiniteElementContext_SaveSwarms( void* context ) {
 
 	Swarm_Register_SaveAllRegisteredSwarms( 
-		Swarm_Register_GetSwarm_Register(), context );
+		Swarm_Register_GetSwarm_Register( ), context );
 
 }
 
 
 void _FiniteElementContext_SaveMesh( void* context ) {
    FiniteElementContext*   self;
-	Stream*                 info = Journal_Register( Info_Type, "Context" );
-   unsigned                componentCount = LiveComponentRegister_GetCount(stgLiveComponentRegister);
+	Stream*                 info = Journal_Register( Info_Type, (Name)"Context" );
+   unsigned                componentCount = LiveComponentRegister_GetCount(stgLiveComponentRegister );
    unsigned                compI;
    Stg_Component*          stgComp;
    FeMesh*                 mesh;
@@ -573,11 +572,11 @@ void _FiniteElementContext_DumpMeshHDF5(
    int                     buf_int[5];
    MPI_Status              status;
    int                     confirmation = 0;
-   Stream*                 errorStr = Journal_Register( Error_Type, self->type );
+   Stream*                 errorStr = Journal_Register( Error_Type, (Name)self->type );
    Element_LocalIndex      lElement_I;
    Element_GlobalIndex     gElement_I;
    Index                   maxNodes;
-   IArray*                 iarray = IArray_New();
+   IArray*                 iarray = IArray_New( );
    char*                   filename = NULL;
    char*                   meshSaveFileNamePart = NULL;
 
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/ForceTerm.c
--- a/SLE/SystemSetup/src/ForceTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/ForceTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -186,14 +186,14 @@ void _ForceTerm_AssignFromXML( void* for
 	Stg_Component*				extraInfo;
 	ForceVector*				forceVector;
 
-	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", FiniteElementContext, False, data );
+	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", FiniteElementContext, False, data );
 
-	if( !context )
-		context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
+	if( !context  )
+		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data  );
 
-	forceVector = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ForceVector", ForceVector,   True,  data ) ;
-	swarm       = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Swarm",       Swarm,         True,  data ) ;
-	extraInfo   = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ExtraInfo",   Stg_Component, False, data ) ;
+	forceVector = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ForceVector", ForceVector, True, data  ) ;
+	swarm       = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Swarm", Swarm, True, data  ) ;
+	extraInfo   = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ExtraInfo", Stg_Component, False, data  ) ;
 
 	_ForceTerm_Init( self, context, forceVector, swarm, extraInfo );
 }
@@ -260,7 +260,7 @@ void _ForceTerm_AssembleElement(
 			double*                           elForceVecToAdd ) 
 {
 	ForceTerm* self        = (ForceTerm*)forceTerm;
-	Stream*    errorStream = Journal_Register( Error_Type, self->type );
+	Stream*    errorStream = Journal_Register( Error_Type, (Name)self->type  );
 
 	Journal_Printf( errorStream, "Error in func %s for %s '%s' - "
 			"This function is the default function which should never be called - "
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/ForceVector.c
--- a/SLE/SystemSetup/src/ForceVector.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/ForceVector.c	Thu Jan 14 17:42:23 2010 +1100
@@ -228,10 +228,10 @@ void _ForceVector_AssignFromXML( void* f
 
 	_SolutionVector_AssignFromXML( self, cf, data );
 	
-	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
+	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"dim", 0 );
 
 	entryPointRegister = (void*)self->context->entryPoint_Register;
-	assert( entryPointRegister );
+	assert( entryPointRegister  );
 	
 	_ForceVector_Init( self, dim, entryPointRegister );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/Init.c
--- a/SLE/SystemSetup/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -54,26 +54,24 @@ Stream* StgFEM_SLE_SystemSetup_Debug = N
 /** Initialises the Linear Algebra package, then any init for this package
 such as streams etc */
 Bool StgFEM_SLE_SystemSetup_Init( int* argc, char** argv[] ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	/* initialise this level's streams */
 	StgFEM_SLE_Debug = Stream_RegisterChild( StgFEM_Debug, "SLE" );
 	StgFEM_SLE_SystemSetup_Debug = Stream_RegisterChild( StgFEM_SLE_Debug, "SystemSetup" );
 	
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), FiniteElementContext_Type, "0", FiniteElementContext_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), ForceVector_Type, "0", _ForceVector_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), SolutionVector_Type, "0", _SolutionVector_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), StiffnessMatrix_Type, "0", StiffnessMatrix_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), StiffnessMatrixTerm_Type, "0", _StiffnessMatrixTerm_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), SystemLinearEquations_Type, "0", _SystemLinearEquations_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), ForceTerm_Type, "0", _ForceTerm_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), 
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), FiniteElementContext_Type, (Name)"0", FiniteElementContext_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), ForceVector_Type, "0", _ForceVector_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), SolutionVector_Type, (Name)"0", _SolutionVector_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), StiffnessMatrix_Type, "0", StiffnessMatrix_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), StiffnessMatrixTerm_Type, (Name)"0", _StiffnessMatrixTerm_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), SystemLinearEquations_Type, "0", _SystemLinearEquations_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), ForceTerm_Type, (Name)"0", _ForceTerm_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), 
 				   MultigridSolver_Type, "0", 
 				   (Stg_Component_DefaultConstructorFunction*)MultigridSolver_New );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), 
-				   SROpGenerator_Type, "0", 
-				   (Stg_Component_DefaultConstructorFunction*)SROpGenerator_New );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), 
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), SROpGenerator_Type, (Name)"0", (Stg_Component_DefaultConstructorFunction*)SROpGenerator_New );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister( ), 
 				   PETScMGSolver_Type, "0", 
 				   (Stg_Component_DefaultConstructorFunction*)PETScMGSolver_New );
 
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/MGOpGenerator.c
--- a/SLE/SystemSetup/src/MGOpGenerator.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/MGOpGenerator.c	Thu Jan 14 17:42:23 2010 +1100
@@ -114,7 +114,7 @@ void _MGOpGenerator_Print( void* mgOpGen
 	
 	/* Set the Journal for printing informations */
 	Stream* mgOpGeneratorStream;
-	mgOpGeneratorStream = Journal_Register( InfoStream_Type, "MGOpGeneratorStream" );
+	mgOpGeneratorStream = Journal_Register( InfoStream_Type, (Name)"MGOpGeneratorStream"  );
 
 	assert( self && Stg_CheckType( self, MGOpGenerator ) );
 
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/MultigridSolver.c
--- a/SLE/SystemSetup/src/MultigridSolver.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/MultigridSolver.c	Thu Jan 14 17:42:23 2010 +1100
@@ -172,7 +172,7 @@ void _MultigridSolver_Print( void* matri
 	
 	/* Set the Journal for printing informations */
 	Stream* matrixSolverStream;
-	matrixSolverStream = Journal_Register( InfoStream_Type, "MultigridSolverStream" );
+	matrixSolverStream = Journal_Register( InfoStream_Type, (Name)"MultigridSolverStream"  );
 
 	assert( self && Stg_CheckType( self, MultigridSolver ) );
 
@@ -188,10 +188,9 @@ void _MultigridSolver_AssignFromXML( voi
 	assert( self && Stg_CheckType( self, MultigridSolver ) );
 	assert( cf );
 
-	nLevels = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "levels", 1 );
+	nLevels = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"levels", 1  );
 	MultigridSolver_SetLevels( self, nLevels );
-	self->opGen = Stg_ComponentFactory_ConstructByKey( cf, self->name, "opGenerator", MGOpGenerator, 
-							   True, data );
+	self->opGen = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"opGenerator", MGOpGenerator, True, data  );
 	MGOpGenerator_SetMatrixSolver( self->opGen, self );
 	MGOpGenerator_SetNumLevels( self->opGen, nLevels );
 }
@@ -201,8 +200,8 @@ void _MultigridSolver_Build( void* matri
 
 	assert( self && Stg_CheckType( self, MultigridSolver ) );
 
-	self->stream = Journal_Register( InfoStream_Type, "general" );
-	if( self->opGen )
+	self->stream = Journal_Register( InfoStream_Type, (Name)"general" );
+	if( self->opGen  )
 		Stg_Component_Build( self->opGen, data, False );
 }
 
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/PETScMGSolver.c
--- a/SLE/SystemSetup/src/PETScMGSolver.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/PETScMGSolver.c	Thu Jan 14 17:42:23 2010 +1100
@@ -158,7 +158,7 @@ void _PETScMGSolver_Print( void* matrixS
 	
 	/* Set the Journal for printing informations */
 	Stream* matrixSolverStream;
-	matrixSolverStream = Journal_Register( InfoStream_Type, "PETScMGSolverStream" );
+	matrixSolverStream = Journal_Register( InfoStream_Type, (Name)"PETScMGSolverStream"  );
 
 	assert( self && Stg_CheckType( self, PETScMGSolver ) );
 
@@ -180,11 +180,11 @@ void _PETScMGSolver_AssignFromXML( void*
 
 	//_PETScMatrixSolver_AssignFromXML( self, cf, data );
 
-	pure = Stg_ComponentFactory_GetBool( cf, self->name, "pure", False );
-	nLevels = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "levels", 1 );
-	nCycles = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "cycles", 1 );
-	nDownIts = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "downIterations", 1 );
-	nUpIts = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "upIterations", 1 );
+	pure = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"pure", False  );
+	nLevels = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"levels", 1  );
+	nCycles = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"cycles", 1  );
+	nDownIts = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"downIterations", 1  );
+	nUpIts = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"upIterations", 1  );
 
 	self->pure = pure;
 	PETScMGSolver_SetLevels( self, nLevels );
@@ -192,8 +192,7 @@ void _PETScMGSolver_AssignFromXML( void*
 	PETScMGSolver_SetAllDownIterations( self, nDownIts );
 	PETScMGSolver_SetAllUpIterations( self, nUpIts );
 
-	self->opGen = Stg_ComponentFactory_ConstructByKey( cf, self->name, "opGenerator", MGOpGenerator, 
-							   True, data );
+	self->opGen = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"opGenerator", MGOpGenerator, True, data  );
 	MGOpGenerator_SetMatrixSolver( self->opGen, self );
 	MGOpGenerator_SetNumLevels( self->opGen, nLevels );
 }
@@ -501,7 +500,7 @@ void PETScMGSolver_UpdateMatrices( PETSc
 	assert( self && Stg_CheckType( self, PETScMGSolver ) );
 	//assert( self->matrix && Stg_CheckType( self->matrix, PETScMatrix ) );
 
-	stream = Journal_Register( InfoStream_Type, "general" ); assert( stream );
+	stream = Journal_Register( InfoStream_Type, (Name)"general" ); assert( stream  );
 	Journal_Printf( stream, "Updating MG matrices ...\n" );
 
 	ec = KSPGetPC( self->mgData->ksp, &pc );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/SLE_Solver.c
--- a/SLE/SystemSetup/src/SLE_Solver.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/SLE_Solver.c	Thu Jan 14 17:42:23 2010 +1100
@@ -209,12 +209,12 @@ void _SLE_Solver_AssignFromXML( void* sl
 	Bool            useStatSolve;
 	int             nStatReps;
 
-	self->context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", FiniteElementContext, False, data );
-	if( !self->context )
-		self->context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
+	self->context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", FiniteElementContext, False, data );
+	if( !self->context  )
+		self->context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data  );
 
-	useStatSolve = Stg_ComponentFactory_GetBool( cf, self->name, "statSolve", False );
-	nStatReps = Stg_ComponentFactory_GetInt( cf, self->name, "statReps", 0 );
+	useStatSolve = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"statSolve", False  );
+	nStatReps = Stg_ComponentFactory_GetInt( cf, self->name, (Dictionary_Entry_Key)"statReps", 0  );
 
 	_SLE_Solver_Init( self, useStatSolve, nStatReps );
 }
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/SROpGenerator.c
--- a/SLE/SystemSetup/src/SROpGenerator.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/SROpGenerator.c	Thu Jan 14 17:42:23 2010 +1100
@@ -117,7 +117,7 @@ void _SROpGenerator_Print( void* srOpGen
 	
 	/* Set the Journal for printing informations */
 	Stream* srOpGeneratorStream;
-	srOpGeneratorStream = Journal_Register( InfoStream_Type, "SROpGeneratorStream" );
+	srOpGeneratorStream = Journal_Register( InfoStream_Type, (Name)"SROpGeneratorStream"  );
 
 	assert( self && Stg_CheckType( self, SROpGenerator ) );
 
@@ -132,8 +132,7 @@ void _SROpGenerator_AssignFromXML( void*
 
 	assert( self && Stg_CheckType( self, SROpGenerator ) );
 
-	var = Stg_ComponentFactory_ConstructByKey( cf, self->name, "fineVariable", FeVariable, 
-						     True, data );
+	var = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"fineVariable", FeVariable, True, data  );
 	SROpGenerator_SetFineVariable( self, var );
 }
 
@@ -232,7 +231,7 @@ void SROpGenerator_GenMeshes( SROpGenera
 }
 
 void SROpGenerator_GenLevelMesh( SROpGenerator* self, unsigned level ) {
-	Stream*			errorStream = Journal_Register( ErrorStream_Type, "SROpGenerator::GenLevelMesh" );
+	Stream*			errorStream = Journal_Register( ErrorStream_Type, (Name)"SROpGenerator::GenLevelMesh"  );
 	Mesh			*fMesh, *cMesh;
 	CartesianGenerator	*fGen, *cGen;
 	unsigned		nDims;
@@ -277,7 +276,7 @@ void SROpGenerator_GenLevelMesh( SROpGen
 }
 
 void SROpGenerator_GenLevelTopMap( SROpGenerator* self, unsigned level ) {
-	Stream*		errorStream = Journal_Register( ErrorStream_Type, "SROpGenerator::GenLevelTopMap" );
+	Stream*		errorStream = Journal_Register( ErrorStream_Type, (Name)"SROpGenerator::GenLevelTopMap"  );
 	Mesh		*fMesh, *cMesh;
 	unsigned	nDomainNodes;
 	unsigned	nLevels;
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/SolutionVector.c
--- a/SLE/SystemSetup/src/SolutionVector.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/SolutionVector.c	Thu Jan 14 17:42:23 2010 +1100
@@ -195,11 +195,11 @@ void _SolutionVector_AssignFromXML( void
 	FeVariable*					feVariable = NULL;
 	FiniteElementContext*	context;
 
-	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", FiniteElementContext, False, data );
-	if( !context )
-		context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
+	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", FiniteElementContext, False, data );
+	if( !context  )
+		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data  );
 
-	feVariable = Stg_ComponentFactory_ConstructByKey( cf, self->name, "FeVariable", FeVariable, True, data ) ;
+	feVariable = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"FeVariable", FeVariable, True, data  ) ;
 	_SolutionVector_Init( self, context, MPI_COMM_WORLD, (FeVariable*)feVariable );
 }
 
@@ -536,7 +536,7 @@ void _SolutionVector_ShareValuesNotStore
 	Stream_Indent( self->debug );
 	for( proc_I=0; proc_I < nProc; proc_I++) {
 		if ( proc_I == myRank ) continue; 
-/* Journal_Printf( Journal_Register( Info_Type, "mpi" ),  "!!! line %d, proc_I %d: count = %u\n", __LINE__, proc_I, reqFromOthersCounts[proc_I] ); */
+/* Journal_Printf( Journal_Register( Info_Type, (Name)"mpi"  ),  "!!! line %d, proc_I %d: count = %u\n", __LINE__, proc_I, reqFromOthersCounts[proc_I] ); */
 		if ( reqFromOthersCounts[proc_I] > 0 ) {
 			Journal_DPrintfL( self->debug, 2, "Sending to proc %d the list of %d vector entry indices I want from it:\n"
 				"\t(tracking via reqFromOthersHandles[%d], tag %d)\n", proc_I,
@@ -572,7 +572,7 @@ void _SolutionVector_ShareValuesNotStore
 	reqValuesFromMe = Memory_Alloc_2DComplex( double, nProc, reqFromMeCounts, "reqValuesFromMe" );
 	for( proc_I=0; proc_I < nProc; proc_I++) {
 		if ( proc_I == myRank ) continue; 
-/* /Journal_Printf( Journal_Register( Info_Type, "mpi" ),  "!!! line %d, proc_I %d: count = %u\n", __LINE__, proc_I, reqFromMeCounts[proc_I] ); */
+/* /Journal_Printf( Journal_Register( Info_Type, (Name)"mpi"  ),  "!!! line %d, proc_I %d: count = %u\n", __LINE__, proc_I, reqFromMeCounts[proc_I] ); */
 		if ( reqFromMeCounts[proc_I] > 0 ) {
 			MPI_Recv( reqFromMe[proc_I], reqFromMeCounts[proc_I], MPI_UNSIGNED,
 				proc_I, VALUE_REQUEST_TAG, mpiComm, &status );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/StiffnessMatrix.c
--- a/SLE/SystemSetup/src/StiffnessMatrix.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/StiffnessMatrix.c	Thu Jan 14 17:42:23 2010 +1100
@@ -182,11 +182,11 @@ void _StiffnessMatrix_Init(
 	void*                                            entryPoint_Register,
 	MPI_Comm                                         comm )
 {
-	Stream*		error = Journal_Register( ErrorStream_Type, self->type );
+	Stream*		error = Journal_Register( ErrorStream_Type, (Name)self->type  );
 	Stream*		stream;
 
 	/* General and Virtual info should already be set */
-	stream = Journal_Register( Info_Type, self->type );
+	stream = Journal_Register( Info_Type, (Name)self->type  );
 	Stream_SetPrintingRank( stream, 0 );
 	
 	/* StiffnessMatrix info */
@@ -394,25 +394,25 @@ void _StiffnessMatrix_AssignFromXML( voi
 	Bool             isNonLinear;
 	Bool             allowZeroElementContributions;
 	
-	self->context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", FiniteElementContext, False, data );
-	if( !self->context )
-		self->context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
+	self->context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", FiniteElementContext, False, data );
+	if( !self->context  )
+		self->context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data  );
 
-	rowVar             = Stg_ComponentFactory_ConstructByKey( cf, self->name, "RowVariable",        FeVariable,    True, data );
-	colVar             = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ColumnVariable",     FeVariable,    True, data );
-	fVector            = Stg_ComponentFactory_ConstructByKey( cf, self->name, "RHS",                ForceVector,   False, data );
-	applicationDepInfo = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ApplicationDepInfo", Stg_Component, False, data);
+	rowVar             = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"RowVariable", FeVariable, True, data  );
+	colVar             = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ColumnVariable", FeVariable, True, data  );
+	fVector            = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"RHS", ForceVector, False, data  );
+	applicationDepInfo = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ApplicationDepInfo", Stg_Component, False, data);
 	
 	entryPointRegister = self->context->entryPoint_Register; 
-	assert( entryPointRegister );
+	assert( entryPointRegister  );
 	
-	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
-	assert( dim );
+	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"dim", 0 );
+	assert( dim  );
 
-	isNonLinear = Stg_ComponentFactory_GetBool( cf, self->name, "isNonLinear", False );
+	isNonLinear = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"isNonLinear", False  );
 
 	/* Default is to allow zero element contributions - to allow backward compatibility */
-	allowZeroElementContributions = Stg_ComponentFactory_GetBool( cf, self->name, "allowZeroElementContributions", True );
+	allowZeroElementContributions = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"allowZeroElementContributions", True  );
 
 	_StiffnessMatrix_Init( 
 		self, 
@@ -427,11 +427,11 @@ void _StiffnessMatrix_AssignFromXML( voi
 		0 );
 
 	/* Do we need to use the transpose? */
-	self->transRHS = Stg_ComponentFactory_ConstructByKey( cf, self->name, "transposeRHS", ForceVector, False, data );
+	self->transRHS = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"transposeRHS", ForceVector, False, data  );
 
 	/* Read the matrix type from the dictionary. */
-/* 	self->shellMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, "matrix", PETScShellMatrix, False, data ); */
-/* 	if( !self->shellMatrix ) { */
+/* 	self->shellMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"matrix", PETScShellMatrix, False, data ); */
+/* 	if( !self->shellMatrix  ) { */
 /* 		self->useShellMatrix = False; */
 /* 	} */
 /* 	else { */
@@ -441,8 +441,8 @@ void _StiffnessMatrix_AssignFromXML( voi
 /* 	} */
 
 	/* Setup the stream. */
-	stream = Journal_Register( Info_Type, self->type );
-	if( Dictionary_GetBool_WithDefault( cf->rootDict, "watchAll", False ) == True )
+	stream = Journal_Register( Info_Type, (Name)self->type  );
+	if( Dictionary_GetBool_WithDefault( cf->rootDict, (Dictionary_Entry_Key)"watchAll", False ) == True  )
 		Stream_SetPrintingRank( stream, STREAM_ALL_RANKS );
 	else {
 		unsigned	rankToWatch;
@@ -895,7 +895,7 @@ void StiffnessMatrix_GlobalAssembly_Gene
 	Stream_IndentBranch( StgFEM_Debug );
 
 	Journal_Firewall( Stg_ObjectList_Count( self->stiffnessMatrixTermList ) != 0,
-			  Journal_Register(Error_Type, self->type),
+			  Journal_Register( Error_Type, (Name)self->type ),
 			  "Error in func %s for %s '%s' - No StiffnessMatrixTerms registered.\n", 
 			  __func__, self->type, self->name );
 
@@ -984,7 +984,7 @@ void StiffnessMatrix_GlobalAssembly_Gene
 			if (elStiffMatToAdd) Memory_Free( elStiffMatToAdd );
 			Journal_DPrintfL( self->debug, 2, "Reallocating elStiffMatToAdd to size %d*%d\n",
 					  *totalDofsThisElement[ROW_VAR], *totalDofsThisElement[COL_VAR] ); 
-			elStiffMatToAdd = Memory_Alloc_2DArray( double, *totalDofsThisElement[ROW_VAR], *totalDofsThisElement[COL_VAR], "elStiffMatToAdd" );
+			elStiffMatToAdd = Memory_Alloc_2DArray( double, *totalDofsThisElement[ROW_VAR], *totalDofsThisElement[COL_VAR], (Name)"elStiffMatToAdd"  );
 		}
 
 		/* Initialise the elStiffMat to zero */
@@ -2696,7 +2696,7 @@ void StiffnessMatrix_CheckElementAssembl
 	Bool              atLeastOneNonZeroElementContributionEntry = False;
 	Index             elStiffMat_rowI = 0;
 	Index             elStiffMat_colI = 0;
-	Stream*           errorStream = Journal_Register( Error_Type, self->type );
+	Stream*           errorStream = Journal_Register( Error_Type, (Name)self->type );
 	
 	for ( elStiffMat_colI = 0; elStiffMat_colI < elStiffMatToAddColSize; elStiffMat_colI++ ) {
 		for ( elStiffMat_rowI = 0; elStiffMat_rowI < elStiffMatToAddColSize; elStiffMat_rowI++ ) {
@@ -2705,7 +2705,7 @@ void StiffnessMatrix_CheckElementAssembl
 				break;
 			}	
 		}	
-		if ( atLeastOneNonZeroElementContributionEntry == True ) {
+		if ( atLeastOneNonZeroElementContributionEntry == True  ) {
 			break;
 		}	
 	}
@@ -2782,7 +2782,7 @@ void StiffnessMatrix_CalcNonZeros( void*
 	assert( self && Stg_CheckType( self, StiffnessMatrix ) );
 	assert( self->rowVariable );
 
-	stream = Journal_Register( Info_Type, self->type );
+	stream = Journal_Register( Info_Type, (Name)self->type  );
 	Journal_Printf( stream, "Stiffness matrix: '%s'\n", self->name );
 	Stream_Indent( stream );
 	Journal_Printf( stream, "Calculating number of nonzero entries...\n" );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/StiffnessMatrixTerm.c
--- a/SLE/SystemSetup/src/StiffnessMatrixTerm.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/StiffnessMatrixTerm.c	Thu Jan 14 17:42:23 2010 +1100
@@ -196,13 +196,13 @@ void _StiffnessMatrixTerm_AssignFromXML(
 	StiffnessMatrix*           stiffnessMatrix;
    FiniteElementContext*      context;
    
-	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", FiniteElementContext, False, data );
-	if( !context )
-		context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
+	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", FiniteElementContext, False, data );
+	if( !context  )
+		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data  );
 
-	stiffnessMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, "StiffnessMatrix", StiffnessMatrix, True,  data ) ;
-	swarm           = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Swarm",           Swarm,           True,  data ) ;
-	extraInfo       = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ExtraInfo",       Stg_Component,   False, data );
+	stiffnessMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"StiffnessMatrix", StiffnessMatrix, True, data  ) ;
+	swarm           = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Swarm", Swarm, True, data  ) ;
+	extraInfo       = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ExtraInfo", Stg_Component, False, data  );
 
 	_StiffnessMatrixTerm_Init( self, context, stiffnessMatrix, swarm, extraInfo );
 }
@@ -267,7 +267,7 @@ void _StiffnessMatrixTerm_AssembleElemen
 			double**                          elStiffMatToAdd ) 
 {
 	StiffnessMatrixTerm* self        = (StiffnessMatrixTerm*)stiffnessMatrixTerm;
-	Stream*    errorStream = Journal_Register( Error_Type, self->type );
+	Stream*    errorStream = Journal_Register( Error_Type, (Name)self->type  );
 
 	Journal_Printf( errorStream, "Error in func %s for %s '%s' - "
 			"This function is the default function which should never be called - "
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/src/SystemLinearEquations.c
--- a/SLE/SystemSetup/src/SystemLinearEquations.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/src/SystemLinearEquations.c	Thu Jan 14 17:42:23 2010 +1100
@@ -146,7 +146,7 @@ void _SystemLinearEquations_Init(
 
 	self->makeConvergenceFile = makeConvergenceFile;
 	if ( self->makeConvergenceFile ) {
-		self->convergenceStream = Journal_Register( InfoStream_Type, "Convergence Info" );
+		self->convergenceStream = Journal_Register( InfoStream_Type, (Name)"Convergence Info"  );
 		Stg_asprintf( &filename, "Convergence.dat" );
 		Stream_RedirectFile_WithPrependedPath( self->convergenceStream, context->outputPath, filename );
 		Stream_SetPrintingRank( self->convergenceStream, 0 );
@@ -343,36 +343,36 @@ void _SystemLinearEquations_AssignFromXM
 	SNES                    nlSolver = NULL;
 	Name							optionsPrefix;
 	
-	solver = Stg_ComponentFactory_ConstructByKey( cf, self->name, SLE_Solver_Type, SLE_Solver, False, data ) ;
+	solver = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)SLE_Solver_Type, SLE_Solver, False, data  ) ;
 
-	makeConvergenceFile		= Stg_ComponentFactory_GetBool( cf, self->name, "makeConvergenceFile", False );
-	isNonLinear					= Stg_ComponentFactory_GetBool( cf, self->name, "isNonLinear", False );
-	nonLinearTolerance		= Stg_ComponentFactory_GetDouble( cf, self->name, "nonLinearTolerance", 0.01 );
-	nonLinearMaxIterations	= Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "nonLinearMaxIterations", 500 );
-	killNonConvergent			= Stg_ComponentFactory_GetBool( cf, self->name, "killNonConvergent", True );
-	nonLinearMinIterations 	= Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "nonLinearMinIterations", 1 );
-	nonLinearSolutionType	= Stg_ComponentFactory_GetString( cf, self->name, "nonLinearSolutionType", "default" );
-	optionsPrefix				= Stg_ComponentFactory_GetString( cf, self->name, "optionsPrefix", "" );
+	makeConvergenceFile		= Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"makeConvergenceFile", False  );
+	isNonLinear					= Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"isNonLinear", False  );
+	nonLinearTolerance		= Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"nonLinearTolerance", 0.01  );
+	nonLinearMaxIterations	= Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"nonLinearMaxIterations", 500  );
+	killNonConvergent			= Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"killNonConvergent", True  );
+	nonLinearMinIterations 	= Stg_ComponentFactory_GetUnsignedInt( cf, self->name, (Dictionary_Entry_Key)"nonLinearMinIterations", 1  );
+	nonLinearSolutionType	= Stg_ComponentFactory_GetString( cf, self->name, (Dictionary_Entry_Key)"nonLinearSolutionType", "default"  );
+	optionsPrefix				= Stg_ComponentFactory_GetString( cf, self->name, (Dictionary_Entry_Key)"optionsPrefix", ""  );
 
 	/* Read some value for Picard */
-	self->picard_form_function_type = Stg_ComponentFactory_GetString( cf, self->name, "picard_FormFunctionType", "PicardFormFunction_KSPResidual" );
+	self->picard_form_function_type = Stg_ComponentFactory_GetString( cf, self->name, (Dictionary_Entry_Key)"picard_FormFunctionType", "PicardFormFunction_KSPResidual"  );
 
-	self->alpha				= Stg_ComponentFactory_GetDouble( cf, self->name, "picard_alpha", 1.0 );
-	self->rtol				= Stg_ComponentFactory_GetDouble( cf, self->name, "picard_rtol", 1.0e-8 );
-	self->abstol			= Stg_ComponentFactory_GetDouble( cf, self->name, "picard_atol", 1.0e-50 );        
-	self->xtol				= Stg_ComponentFactory_GetDouble( cf, self->name, "picard_xtol", 1.0e-8 );
-	self->picard_monitor	= Stg_ComponentFactory_GetBool( cf, self->name, "picard_ActivateMonitor", False );
+	self->alpha				= Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"picard_alpha", 1.0  );
+	self->rtol				= Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"picard_rtol", 1.0e-8  );
+	self->abstol			= Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"picard_atol", 1.0e-50  );        
+	self->xtol				= Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"picard_xtol", 1.0e-8  );
+	self->picard_monitor	= Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"picard_ActivateMonitor", False  );
 	
-	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", FiniteElementContext, False, data );
-	if( !context )
-		context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
+	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", FiniteElementContext, False, data );
+	if( !context  )
+		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data );
 
 	entryPointRegister = context->entryPoint_Register;
 	assert( entryPointRegister );
 
-	if( isNonLinear ) {
+	if( isNonLinear  ) {
 		SNESCreate( context->communicator, &nlSolver );
-		self->linearSolveInitGuess = Stg_ComponentFactory_GetBool( cf, self->name, "linearSolveInitialGuess", False );
+		self->linearSolveInitGuess = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"linearSolveInitialGuess", False  );
 	}
 	
 	_SystemLinearEquations_Init( 
@@ -740,7 +740,7 @@ void SystemLinearEquations_NonLinearExec
 	double                  tolerance       = self->nonLinearTolerance;
 	Iteration_Index         maxIterations   = self->nonLinearMaxIterations;
 	Bool                    converged;
-	Stream*                 errorStream     = Journal_Register( Error_Type, self->type );
+	Stream*                 errorStream     = Journal_Register( Error_Type, (Name)self->type  );
 	double					wallTime;
 	Iteration_Index         minIterations   = self->nonLinearMinIterations;
         SLE_Solver*             solver;
@@ -951,7 +951,7 @@ void SystemLinearEquations_SNESPicardFor
 {
 	SystemLinearEquations *sle = (SystemLinearEquations*)someSLE;
     	SLE_Solver            *solver = (SLE_Solver*)sle->solver;
-	Stream*                 errorStream     = Journal_Register( Error_Type, sle->type );
+	Stream*                 errorStream     = Journal_Register( Error_Type, (Name)sle->type  );
 
 	Journal_Printf( errorStream, "    **** SystemLinearEquations_SNESPicardFormalResidual: This option is un-tested and does not yet function correctly. \n");
 	Journal_Printf( errorStream, "    **** Use the default form function or specify --components.XXX.picard_FormFunctionType=PicardFormFunction_KSPResidual instead. \n");
@@ -1333,7 +1333,7 @@ void SystemLinearEquations_SetToNonLinea
 				self->_sleFormFunction = SystemLinearEquations_SNESPicardFormalResidual;
 			}
 			else {
-				 Stream *errorStream = Journal_Register( Error_Type, self->type );
+				 Stream *errorStream = Journal_Register( Error_Type, (Name)self->type  );
 
 		                Journal_Printf( errorStream, "Unknown the Picard FormFunction type %s is unrecognised. .\n", self->picard_form_function_type );
 				Journal_Printf( errorStream, "Supported types include <PicardFormFunction_FormalResidual, PicardFormFunction_KSPResidual> \n" );
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/SystemSetup/tests/ContextSuite.c
--- a/SLE/SystemSetup/tests/ContextSuite.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/SystemSetup/tests/ContextSuite.c	Thu Jan 14 17:42:23 2010 +1100
@@ -42,11 +42,11 @@ void ContextSuite_TestContext( ContextSu
 	pcu_filename_input( "testContext.xml", xml_input );
 	
 	cf = stgMainInitFromXML( xml_input, MPI_COMM_WORLD, NULL );
-	data->context = (FiniteElementContext*)LiveComponentRegister_Get( cf->LCRegister, "context" ); 
-	stgMainBuildAndInitialise(cf);
+	data->context = (FiniteElementContext*)LiveComponentRegister_Get( cf->LCRegister, (Name)"context" ); 
+	stgMainBuildAndInitialise(cf );
 
 	dictionary = data->context->dictionary;
-	outputPath = Dictionary_GetString( dictionary, "outputPath" );
+	outputPath = Dictionary_GetString( dictionary, (Dictionary_Entry_Key)"outputPath"  );
 
 	/* Run the test  ----------------------------------------------------------------------------------------------------*/
 	/* This is where we'd normally construct components if it was real main.
@@ -56,8 +56,8 @@ void ContextSuite_TestContext( ContextSu
 	if( data->context->rank == 0 ) 
 		Context_PrintConcise( data->context, data->context->verbose );
 
-	if ( True == Dictionary_GetBool_WithDefault( dictionary, "showJournalStatus", False ) ) {
-		Journal_PrintConcise();	
+	if ( True == Dictionary_GetBool_WithDefault( dictionary, (Dictionary_Entry_Key)"showJournalStatus", False ) ) {
+		Journal_PrintConcise( );	
 	}	
 
 	/* Building phase ---------------------------------------------------------------------------------------------------*/
@@ -71,7 +71,7 @@ void ContextSuite_TestContext( ContextSu
 	data->context->dtFactor = 1.0;
 
 	Journal_Enable_TypedStream( InfoStream_Type, True );
-	stream = Journal_Register( Info_Type, "testContext.xml"); 
+	stream = Journal_Register( Info_Type, (Name)"testContext.xml" ); 
 	data->context->info = stream;  /* Redirect output to test data stream */
 	Stream_RedirectFile_WithPrependedPath( stream, outputPath, "test.dat" );
 
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/src/Finalise.c
--- a/SLE/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -50,7 +50,7 @@
 #include <stdio.h>
 
 Bool StgFEM_SLE_Finalise( void ) {
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 	
 	//StgFEM_SLE_LinearAlgebra_Finalise();
 	StgFEM_SLE_SystemSetup_Finalise();
diff -r fe089b369b12 -r c3b4e4b75a06 SLE/src/Init.c
--- a/SLE/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SLE/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -56,14 +56,14 @@ Bool StgFEM_SLE_Init( int* argc, char** 
 Bool StgFEM_SLE_Init( int* argc, char** argv[] ) {
 	int tmp;
 	
-	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
-	tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, "Context" ) );
-	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), 0 );
+	Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+	tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), 0 );
 	Journal_Printf( /* DO NOT CHANGE OR REMOVE */
-		Journal_Register( InfoStream_Type, "Context" ), 
+		Journal_Register( InfoStream_Type, (Name)"Context"  ), 
 		"StGermain SLE Library revision %s. Copyright (C) 2003-2005 VPAC.\n", VERSION );
-	Stream_Flush( Journal_Register( InfoStream_Type, "Context" ) );
-	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), tmp );
+	Stream_Flush( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+	Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), tmp );
 	
 	//StgFEM_SLE_LinearAlgebra_Init( argc, argv );
 	StgFEM_SLE_SystemSetup_Init( argc, argv );
diff -r fe089b369b12 -r c3b4e4b75a06 SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c
--- a/SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c	Thu Jan 14 17:42:23 2010 +1100
@@ -73,12 +73,12 @@ void AdvDiffSteadyState1D_TemperatureFun
 
 void AdvDiffSteadyState1D_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* temperature ){
 	DomainContext*	context    = (DomainContext*)_context;
-	AdvDiffSteadyState1D*   self       = Stg_ComponentFactory_ConstructByName( context->CF, AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True, 0 /* dummy */ );
+	AdvDiffSteadyState1D*   self       = Stg_ComponentFactory_ConstructByName( context->CF, (Name)AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True, 0 /* dummy */ );
 	FeVariable*             feVariable = NULL;
 	FeMesh*     mesh       = NULL;
 	double*                 coord;
 	
-	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
+	feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
 	mesh       = feVariable->feMesh;
 	coord      = Mesh_GetVertex( mesh, node_lI );
 
@@ -135,14 +135,14 @@ void _AdvDiffSteadyState1D_AssignFromXML
 
 	_FieldTest_AssignFromXML( self, cf, data );
 
-	self->residual = Stg_ComponentFactory_ConstructByName( cf, "defaultResidualForceTerm", AdvDiffResidualForceTerm, True, data );
+	self->residual = Stg_ComponentFactory_ConstructByName( cf, (Name)"defaultResidualForceTerm", AdvDiffResidualForceTerm, True, data  );
 
-	self->velocity = Stg_ComponentFactory_GetRootDictDouble( cf, "velocity", 1.0 );
-	self->A        = Stg_ComponentFactory_GetRootDictDouble( cf, "A", 1.0 );
-	self->B        = Stg_ComponentFactory_GetRootDictDouble( cf, "B", 0.0 );
-	self->c        = Stg_ComponentFactory_GetRootDictDouble( cf, "c", 0.0 );
+	self->velocity = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"velocity", 1.0  );
+	self->A        = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"A", 1.0  );
+	self->B        = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"B", 0.0  );
+	self->c        = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"c", 0.0  );
 	
-	condFunc = ConditionFunction_New( AdvDiffSteadyState1D_TemperatureBC, "AnalyticSolutionFunction" );
+	condFunc = ConditionFunction_New( AdvDiffSteadyState1D_TemperatureBC, (Name)"AnalyticSolutionFunction"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
 }
@@ -170,7 +170,7 @@ void* _AdvDiffSteadyState1D_DefaultNew( 
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_AdvDiffSteadyState1D_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, AdvDiffSteadyState1D_Type, "0", _AdvDiffSteadyState1D_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, AdvDiffSteadyState1D_Type, (Name)"0", _AdvDiffSteadyState1D_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.c
--- a/SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.c	Thu Jan 14 17:42:23 2010 +1100
@@ -65,18 +65,13 @@ void CosineHillRotate_TemperatureFunctio
 
 void CosineHillRotate_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context    = (DomainContext*)_context;
-	CosineHillRotate*  self       = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		CosineHillRotate_Type, 
-		CosineHillRotate, 
-		True,
-		0 );
+	CosineHillRotate*  self       = Stg_ComponentFactory_ConstructByName( context->CF, (Name)CosineHillRotate_Type, CosineHillRotate, True, 0 );
 	FeVariable*             feVariable = NULL;
 	FeMesh*			mesh       = NULL;
 	double*                 result     = (double*) _result;
 	double*                 coord;
 	
-	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
+	feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
 	mesh       = feVariable->feMesh;
 	coord = Mesh_GetVertex( mesh, node_lI );
 
@@ -90,14 +85,14 @@ void _CosineHillRotate_AssignFromXML( vo
 	_FieldTest_AssignFromXML( self, cf, data );
 
 	/* Read values from dictionary */
-	self->hillHeight       = Stg_ComponentFactory_GetRootDictDouble( cf, "CosineHillHeight"  , 1.0 );
-	self->hillDiameter     = Stg_ComponentFactory_GetRootDictDouble( cf, "CosineHillDiameter", 1.0 );
-	self->rotationCentre[ I_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, "SolidBodyRotationCentreX" , 0.0 );
-	self->rotationCentre[ J_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, "SolidBodyRotationCentreY" , 0.0 );
-	self->rotationCentre[ K_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, "SolidBodyRotationCentreZ" , 0.0 );
+	self->hillHeight       = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"CosineHillHeight"  , 1.0  );
+	self->hillDiameter     = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"CosineHillDiameter", 1.0  );
+	self->rotationCentre[ I_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"SolidBodyRotationCentreX" , 0.0  );
+	self->rotationCentre[ J_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"SolidBodyRotationCentreY" , 0.0  );
+	self->rotationCentre[ K_AXIS ] = Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ" , 0.0  );
 
 	/* Create Condition Functions */
-	condFunc = ConditionFunction_New( CosineHillRotate_TemperatureBC, "Temperature_CosineHill" );
+	condFunc = ConditionFunction_New( CosineHillRotate_TemperatureBC, (Name)"Temperature_CosineHill"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 }
 
@@ -135,7 +130,7 @@ void* _CosineHillRotate_DefaultNew( Name
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_CosineHillRotate_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, CosineHillRotate_Type, "0", _CosineHillRotate_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, CosineHillRotate_Type, (Name)"0", _CosineHillRotate_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c
--- a/SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c	Thu Jan 14 17:42:23 2010 +1100
@@ -54,16 +54,11 @@ typedef struct {
 
 void HomogeneousNaturalBCs_Velocity_SkewToMesh( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context = (DomainContext*)_context;
-	HomogeneousNaturalBCs*  self    = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		HomogeneousNaturalBCs_Type, 
-		HomogeneousNaturalBCs, 
-		True,
-		0 );
+	HomogeneousNaturalBCs*  self    = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
 	double*                 result  = (double*) _result;
 	
 	result[ I_AXIS ] =  cos( self->angle );
-	result[ J_AXIS ] =  sin( self->angle );
+	result[ J_AXIS ] =  sin( self->angle  );
 }
 
 
@@ -78,18 +73,13 @@ void HomogeneousNaturalBCs_TemperatureFu
 	
 void HomogeneousNaturalBCs_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DomainContext*	context    = (DomainContext*)_context;
-	HomogeneousNaturalBCs*  self       = Stg_ComponentFactory_ConstructByName( 
-		context->CF, 
-		HomogeneousNaturalBCs_Type, 
-		HomogeneousNaturalBCs, 
-		True,
-		0 );
+	HomogeneousNaturalBCs*  self       = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
 	FeVariable*             feVariable = NULL;
 	FeMesh*			mesh       = NULL;
 	double*                 result     = (double*) _result;
 	double*                 coord;
 	
-	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
+	feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
 	mesh       = feVariable->feMesh;
 	coord = Mesh_GetVertex( mesh, node_lI );
 
@@ -102,15 +92,15 @@ void _HomogeneousNaturalBCs_AssignFromXM
 
 	_FieldTest_AssignFromXML( self, cf, data );
 
-	self->angle = StGermain_DegreeToRadian (Stg_ComponentFactory_GetRootDictDouble( cf, "VelocitySkewAngle", 45.0 ) );
+	self->angle = StGermain_DegreeToRadian (Stg_ComponentFactory_GetRootDictDouble( cf, (Dictionary_Entry_Key)"VelocitySkewAngle", 45.0 )  );
 
 	/* Create Condition Functions */
 /*
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  ); 
 */
-	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_Velocity_SkewToMesh, "Velocity_SkewToMesh" );
+	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_Velocity_SkewToMesh, (Name)"Velocity_SkewToMesh"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_TemperatureBC, "Temperature_StepFunction" );
+	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_TemperatureBC, (Name)"Temperature_StepFunction"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 }
 
@@ -148,7 +138,7 @@ void* _HomogeneousNaturalBCs_DefaultNew(
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_HomogeneousNaturalBCs_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, HomogeneousNaturalBCs_Type, "0", _HomogeneousNaturalBCs_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, HomogeneousNaturalBCs_Type, (Name)"0", _HomogeneousNaturalBCs_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c
--- a/SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -130,8 +130,8 @@ void _LidDrivenIsoviscousAnalytic_Assign
 	_FieldTest_AssignFromXML( self, cf, data );
 
 	/* Set constants */
-	self->wavenumber = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "sinusoidalLidWavenumber", 1 );
-	LidDrivenIsoviscousAnalytic_CalculateConstants( self );
+	self->wavenumber = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"sinusoidalLidWavenumber", 1 );
+	LidDrivenIsoviscousAnalytic_CalculateConstants( self  );
 }
 
 void _LidDrivenIsoviscousAnalytic_Build( void* analyticSolution, void* data ) {
@@ -169,7 +169,7 @@ void* _LidDrivenIsoviscousAnalytic_Defau
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_LidDrivenIsoviscousAnalytic_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, LidDrivenIsoviscousAnalytic_Type, "0", _LidDrivenIsoviscousAnalytic_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, LidDrivenIsoviscousAnalytic_Type, (Name)"0", _LidDrivenIsoviscousAnalytic_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.c
--- a/SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.c	Thu Jan 14 17:42:23 2010 +1100
@@ -61,7 +61,7 @@ void _LinearTemperatureField_AssignFromX
 
 	_FieldTest_AssignFromXML( self, cf, data );
 
-	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data ); 
+	self->temperatureField = Stg_ComponentFactory_ConstructByName( cf, (Name)"TemperatureField", FeVariable, True, data  ); 
 }
 
 void _LinearTemperatureField_Build( void* analyticSolution, void* data ) {
@@ -98,7 +98,7 @@ void* _LinearTemperatureField_DefaultNew
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_LinearTemperatureField_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, LinearTemperatureField_Type, "0", _LinearTemperatureField_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, LinearTemperatureField_Type, (Name)"0", _LinearTemperatureField_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.c
--- a/SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.c	Thu Jan 14 17:42:23 2010 +1100
@@ -86,7 +86,7 @@ void LinearVelocityAnalytic_GetCornerNod
 	Node_Index              globalNode_I;
 	Node_Index              ii;
 	
-	vertGrid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+	vertGrid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, ExtensionManager_GetHandle( mesh->info, (Name)"vertexGrid" )  );
 
 	/* Find global indicies of nodes */
 	self->cornerNodeCount = 4;
@@ -176,8 +176,8 @@ void LinearVelocityAnalytic_VelocityGrad
 	/* Transform the coordinate into a master coordinate system */
 	GetLocalCoords( self, coord, xi );
 
-	GNi = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, "GNi" );
-	GNx = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, "GNx" );
+	GNi = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, (Name)"GNi"  );
+	GNx = Memory_Alloc_2DArray( double, dim, self->cornerNodeCount, (Name)"GNx"  );
 
 	/* Get Shape Functions */
 	elementType = FeMesh_GetElementType( mesh, 0 );
@@ -324,7 +324,7 @@ void _LinearVelocityAnalytic_AssignFromX
 
 	_FieldTest_AssignFromXML( self, cf, data );
 
-	self->velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
+	self->velocityField = Stg_ComponentFactory_ConstructByName( cf, (Name)"VelocityField", FeVariable, True, data  ); 
 }
 
 void _LinearVelocityAnalytic_Build( void* analyticSolution, void* data ) {
@@ -373,7 +373,7 @@ void* _LinearVelocityAnalytic_DefaultNew
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_LinearVelocityAnalytic_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, LinearVelocityAnalytic_Type, "0", _LinearVelocityAnalytic_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, LinearVelocityAnalytic_Type, (Name)"0", _LinearVelocityAnalytic_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 libStgFEM/Toolbox/Toolbox.c
--- a/libStgFEM/Toolbox/Toolbox.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/libStgFEM/Toolbox/Toolbox.c	Thu Jan 14 17:42:23 2010 +1100
@@ -70,11 +70,11 @@ void StgFEM_Toolbox_Finalise( PluginsMan
 void StgFEM_Toolbox_Finalise( PluginsManager* pluginsManager ) {
 	StgFEM_Finalise();
 	
-	Journal_RPrintf( Journal_Register( Info_Type, StgFEM_Toolbox_Type ), "Finalised: StGermain FEM Toolbox.\n" );
+	Journal_RPrintf( Journal_Register( Info_Type, (Name)StgFEM_Toolbox_Type  ), "Finalised: StGermain FEM Toolbox.\n" );
 }
 
 Index StgFEM_Toolbox_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, StgFEM_Toolbox_Type, "0", _StgFEM_Toolbox_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_Toolbox_Type, (Name)"0", _StgFEM_Toolbox_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 libStgFEM/src/Finalise.c
--- a/libStgFEM/src/Finalise.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/libStgFEM/src/Finalise.c	Thu Jan 14 17:42:23 2010 +1100
@@ -51,7 +51,7 @@
 
 Bool StgFEM_Finalise( void ) {
 	if( ToolboxesManager_IsInitialised( stgToolboxesManager, "StgFEM" ) ) {
-		Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+		Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 		
 		Stream_IndentBranch( StgFEM_Debug );
 		StgFEM_Discretisation_Finalise();
diff -r fe089b369b12 -r c3b4e4b75a06 libStgFEM/src/Init.c
--- a/libStgFEM/src/Init.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/libStgFEM/src/Init.c	Thu Jan 14 17:42:23 2010 +1100
@@ -58,14 +58,14 @@ Bool StgFEM_Init( int* argc, char** argv
 		int tmp;
 		char* directory;
 
-		Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
-		tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, "Context" ) );
-		Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), 0 );
+		Journal_Printf( Journal_Register( DebugStream_Type, (Name)"Context"  ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
+		tmp = Stream_GetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+		Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), 0 );
 		Journal_Printf( /* DO NOT CHANGE OR REMOVE */
-			Journal_Register( InfoStream_Type, "Context" ), 
+			Journal_Register( InfoStream_Type, (Name)"Context"  ), 
 			"StGermain Finite Element Framework revision %s. Copyright (C) 2003-2005 VPAC.\n", VERSION );
-		Stream_Flush( Journal_Register( InfoStream_Type, "Context" ) );
-		Stream_SetPrintingRank( Journal_Register( InfoStream_Type, "Context" ), tmp );
+		Stream_Flush( Journal_Register( InfoStream_Type, (Name)"Context" )  );
+		Stream_SetPrintingRank( Journal_Register( InfoStream_Type, (Name)"Context"  ), tmp );
 	
 		StgFEM_Discretisation_Init( argc, argv );
 		StgFEM_SLE_Init( argc, argv );
diff -r fe089b369b12 -r c3b4e4b75a06 libStgFEM/tests/LibStgFEMSuite.c
--- a/libStgFEM/tests/LibStgFEMSuite.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/libStgFEM/tests/LibStgFEMSuite.c	Thu Jan 14 17:42:23 2010 +1100
@@ -23,18 +23,18 @@ void LibStgFEMSuite_Teardown( LibStgFEMS
 
 void LibStgFEMSuite_DirectoryStGermain( LibStgFEMSuiteData* data ) {
     Stg_Object* testDirectoryStGermain;
-    testDirectoryStGermain = Stg_ObjectList_Get( Project_XMLSearchPaths, "StGermain" );
+    testDirectoryStGermain = Stg_ObjectList_Get( Project_XMLSearchPaths, (Name)"StGermain" );
     pcu_check_true( testDirectoryStGermain != NULL );
 }
 
-void LibStgFEMSuite_DirectoryStgFEM( LibStgFEMSuiteData * data ) {
+void LibStgFEMSuite_DirectoryStgFEM( LibStgFEMSuiteData * data  ) {
     Stg_Object* testDirectoryStGermain;
     Stg_Object* testDirectoryStgFEM;
 
-    testDirectoryStGermain = Stg_ObjectList_Get( Project_XMLSearchPaths, "StGermain" );
-    testDirectoryStgFEM= Stg_ObjectList_Get( Project_XMLSearchPaths, "StgFEM" );
+    testDirectoryStGermain = Stg_ObjectList_Get( Project_XMLSearchPaths, (Name)"StGermain"  );
+    testDirectoryStgFEM= Stg_ObjectList_Get( Project_XMLSearchPaths, (Name)"StgFEM" );
 
-    pcu_check_true( ( strcmp((char*)LIB_DIR, (char*)testDirectoryStGermain) ) || ( testDirectoryStgFEM != NULL ) );
+    pcu_check_true( ( strcmp((char* )LIB_DIR, (char*)testDirectoryStGermain) ) || ( testDirectoryStgFEM != NULL ) );
 }
 
 void LibStgFEMSuite( pcu_suite_t* suite ) {
diff -r fe089b369b12 -r c3b4e4b75a06 libStgFEM/tests/testLibStgFEM.c
--- a/libStgFEM/tests/testLibStgFEM.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/libStgFEM/tests/testLibStgFEM.c	Thu Jan 14 17:42:23 2010 +1100
@@ -78,7 +78,7 @@ int main( int argc, char* argv[] ) {
 		Stg_Object* testDirectory;
 		printf( "Watching rank: %i\n", rank );
 		/* Testing entries in xmlDictionary */
-		testDirectory = Stg_ObjectList_Get( xmlSearchPaths,"StGermain" );
+		testDirectory = Stg_ObjectList_Get( xmlSearchPaths, (Name)"StGermain" );
 		if (testDirectory != NULL) {
 			printf("StGermain XML library Path found.\n");
 		}
@@ -86,12 +86,12 @@ int main( int argc, char* argv[] ) {
 			printf("StGermain XML library Path not found.\n"); 
 		}
 		/* For build in the same build directory */
-		if (strcmp((char*)LIB_DIR, (char*)testDirectory)) {
+		if (strcmp((char* )LIB_DIR, (char*)testDirectory)) {
 			printf("StgFEM XML library Path found.\n");
 		}
 		/* For build in separate directories */
 		else{
-			testDirectory = Stg_ObjectList_Get( xmlSearchPaths,"StgFEM" );
+			testDirectory = Stg_ObjectList_Get( xmlSearchPaths, (Name)"StgFEM" );
 			if (testDirectory != NULL) {
 				printf("StgFEM XML library Path found.\n");
 			}
@@ -106,7 +106,7 @@ int main( int argc, char* argv[] ) {
 	StGermain_Finalise();
 	
 	/* Close off MPI */
-	MPI_Finalize();
+	MPI_Finalize( );
 
 	return 0; /* success */
 }
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c
--- a/plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c	Thu Jan 14 17:42:23 2010 +1100
@@ -96,7 +96,7 @@ void _CompareFeVariableAgainstReferenceS
 
 	Stream*                  myStream;
 
-	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
+	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  ); 
 	self->context = context;
 	self->cf = cf;
 
@@ -105,7 +105,7 @@ void _CompareFeVariableAgainstReferenceS
 			CompareFeVariableAgainstReferenceSolution_TestAll, 
 			self );
 
-	self->alwaysOutputErrors = Dictionary_GetBool_WithDefault( cf->rootDict, "alwaysOutputErrors", False );
+	self->alwaysOutputErrors = Dictionary_GetBool_WithDefault( cf->rootDict, (Dictionary_Entry_Key)"alwaysOutputErrors", False  );
 
 	dictionary = Dictionary_GetDictionary( cf->rootDict, self->name );
 	Journal_Firewall(
@@ -128,34 +128,34 @@ void _CompareFeVariableAgainstReferenceS
 	Journal_Printf(
 		Journal_MyStream( Info_Type, self ),
 		"%s: Using integration swarm %s\n", self->name, integrationSwarmName );
-	self->integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, integrationSwarmName, Swarm, True, data ); 
+	self->integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, (Name)integrationSwarmName, Swarm, True, data ); 
 
 	self->variables            = Stg_ObjectList_New();
 	self->tolerances           = Stg_ObjectList_New();
-	self->relativeErrorMeasure = Stg_ObjectList_New();
+	self->relativeErrorMeasure = Stg_ObjectList_New( );
 
-	varList = Dictionary_Get( dictionary, "variables" );
+	varList = Dictionary_Get( dictionary, (Dictionary_Entry_Key)"variables" );
 	Journal_Firewall(
-		varList != NULL && Dictionary_Entry_Value_GetCount( varList ) > 0,
+		varList != NULL && Dictionary_Entry_Value_GetCount( varList  ) > 0,
 		Journal_MyStream( Error_Type, self ),
 		"In func %s - Specify FeVariables to compare in list \"variables\" for %s\n", __func__, self->name );
 
 	for ( var_I = 0; var_I < Dictionary_Entry_Value_GetCount( varList ); ++var_I ) {
 		varName = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( varList, var_I ) );
-		feVarToTest = Stg_ComponentFactory_ConstructByName( cf, varName, FeVariable, True, data );
+		feVarToTest = Stg_ComponentFactory_ConstructByName( cf, (Name)varName, FeVariable, True, data  );
 		Journal_Printf(
 			Journal_MyStream( Info_Type, self ),
 			"%s: Comparing FeVariable %s\n", self->name, varName );
 
-		tmpName = Stg_Object_AppendSuffix( feVarToTest, "tolerance" );
-		tolerance = Dictionary_GetDouble_WithDefault( dictionary, tmpName, 0.005 );
+		tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"tolerance"  );
+		tolerance = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)tmpName, 0.005  );
 
-		tmpName = Stg_Object_AppendSuffix( feVarToTest, "useRelativeErrorMeasure" );
-		relativeErrorMeasure = Dictionary_GetBool_WithDefault( dictionary, tmpName, False );
+		tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"useRelativeErrorMeasure"  );
+		relativeErrorMeasure = Dictionary_GetBool_WithDefault( dictionary, (Dictionary_Entry_Key)tmpName, False  );
 		
 		Stg_ObjectList_Append( self->variables, feVarToTest );
-		Stg_ObjectList_Append( self->tolerances, Stg_PrimitiveObject_New_Double( tolerance, varName ) );
-		Stg_ObjectList_Append( self->relativeErrorMeasure, Stg_PrimitiveObject_New_Int( (relativeErrorMeasure)?1:0, varName ) );
+		Stg_ObjectList_Append( self->tolerances, Stg_PrimitiveObject_New_Double( tolerance, (Name)varName )  );
+		Stg_ObjectList_Append( self->relativeErrorMeasure, Stg_PrimitiveObject_New_Int( (relativeErrorMeasure)?1:0, (Name)varName )  );
 	}
 
 	/* Default is zero which means every time step */
@@ -200,11 +200,7 @@ void* _CompareFeVariableAgainstReference
 
 
 Index StgFEM_CompareFeVariableAgainstReferenceSolution_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( 
-			pluginsManager, 
-			CompareFeVariableAgainstReferenceSolution_Type, 
-			"0", 
-			_CompareFeVariableAgainstReferenceSolution_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, CompareFeVariableAgainstReferenceSolution_Type, (Name)"0", _CompareFeVariableAgainstReferenceSolution_DefaultNew  );
 }
 
 
@@ -284,9 +280,9 @@ void CompareFeVariableAgainstReferenceSo
 	/* Create a DataVariable for the Reference. This serves as the memory object is is linked to */
 	/* Likewise, for the rounded-off version of the "live" FeVar we are testing */
 	assert( Class_IsSuper( feVarToTest->feMesh->topo, IGraph ) );
-	tmpName = Stg_Object_AppendSuffix( feVarToTest, "Reference-DataVariable" );
-	tmpName2 = Stg_Object_AppendSuffix( feVarToTest, "Rounded-DataVariable" );
-	if ( scalar == 1 ) {
+	tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"Reference-DataVariable"  );
+	tmpName2 = Stg_Object_AppendSuffix( feVarToTest, (Name)"Rounded-DataVariable" );
+	if ( scalar == 1  ) {
 		referenceDataVariable = Variable_NewScalar(
 			tmpName,
 			self->context,
@@ -373,8 +369,8 @@ void CompareFeVariableAgainstReferenceSo
 	Stg_Component_Initialise( roundedDataVariable, NULL, False );
 
 	/* Create Dof layout for this variable based on its own DataVariable */
-	tmpName = Stg_Object_AppendSuffix( feVarToTest, "Reference-DofLayout" );
-	tmpName2 = Stg_Object_AppendSuffix( feVarToTest, "Rounded-DofLayout" );
+	tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"Reference-DofLayout"  );
+	tmpName2 = Stg_Object_AppendSuffix( feVarToTest, (Name)"Rounded-DofLayout"  );
 	referenceDofLayout = DofLayout_New( tmpName, (DomainContext*)self->context, variable_Register, Mesh_GetDomainSize( feVarToTest->feMesh, MT_VERTEX ), NULL );
 	roundedDofLayout = DofLayout_New( tmpName2, (DomainContext*)self->context, variable_Register, Mesh_GetDomainSize( feVarToTest->feMesh, MT_VERTEX ), NULL );
 
@@ -403,10 +399,10 @@ void CompareFeVariableAgainstReferenceSo
 	Stg_Component_Initialise( roundedDofLayout, NULL, False );
 
 	if ( strlen( self->referenceFeVariableSuffix ) > 0 ) {
-		refName = Stg_Object_AppendSuffix( feVarToTest, self->referenceFeVariableSuffix );
+		refName = Stg_Object_AppendSuffix( feVarToTest, (Name)self->referenceFeVariableSuffix  );
 	}
 	else {
-		/* refName = Stg_Object_AppendSuffix( feVarToTest, "Reference" ); */
+		/* refName = Stg_Object_AppendSuffix( feVarToTest, (Name)"Reference"  ); */
 		/* We actually need the referenceFeVar initially to be called the same as feVarToTest,
 		 * so it reads the correct values - PatrickSunter, 9 Jun 2007 */ 
 		refName = StG_Strdup( feVarToTest->name );
@@ -422,7 +418,7 @@ void CompareFeVariableAgainstReferenceSo
 		False, /* Don't set the "test every timestep var", since we re-create this guy each timestep anyway*/
 		feVarToTest->fieldVariable_Register );
 
-	tmpName = Stg_Object_AppendSuffix( feVarToTest, "Rounded" );
+	tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"Rounded"  );
 	roundedFeVar = FeVariable_New_FromTemplate( 
 		tmpName, 
 		(DomainContext*)self->context,
@@ -455,9 +451,9 @@ void CompareFeVariableAgainstReferenceSo
 	 * refName is allocated */
 	if ( 0 == strcmp( feVarToTest->name, referenceFeVar->name ) ) {
 		Memory_Free( referenceFeVar->name );
-		referenceFeVar->name = Stg_Object_AppendSuffix( feVarToTest, "Reference" );
+		referenceFeVar->name = Stg_Object_AppendSuffix( feVarToTest, (Name)"Reference"  );
 	}
-	tmpName = Stg_Object_AppendSuffix( feVarToTest, "MagnitudeField" );
+	tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"MagnitudeField"  );
 	refMagnitudeField = OperatorFeVariable_NewUnary( tmpName, (DomainContext*)self->context, referenceFeVar, "Magnitude" );
 	Memory_Free( tmpName );
 
@@ -478,15 +474,15 @@ void CompareFeVariableAgainstReferenceSo
 	}
 	Memory_Free( nodalValues );
 
-	tmpName = Stg_Object_AppendSuffix( feVarToTest, "ErrorField" );
+	tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"ErrorField"  );
 	errorField = OperatorFeVariable_NewBinary( tmpName, (DomainContext*)self->context, roundedFeVar, referenceFeVar, "Subtraction" );
 	Memory_Free( tmpName );
 
-	tmpName = Stg_Object_AppendSuffix( feVarToTest, "ErrorMagnitudeField" );
+	tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"ErrorMagnitudeField"  );
 	errorMagnitudeField = OperatorFeVariable_NewUnary( tmpName, (DomainContext*)self->context, errorField, "Magnitude" );
 	Memory_Free( tmpName );
 
-	tmpName = Stg_Object_AppendSuffix( feVarToTest, "RelativeErrorMagnitudeField" );
+	tmpName = Stg_Object_AppendSuffix( feVarToTest, (Name)"RelativeErrorMagnitudeField"  );
 	relativeErrorMagnitudeField = OperatorFeVariable_NewBinary( tmpName, (DomainContext*)self->context, errorMagnitudeField, refMagnitudeField, "ScalarDivision" );
 	Memory_Free( tmpName );
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Document/Document.c
--- a/plugins/Document/Document.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Document/Document.c	Thu Jan 14 17:42:23 2010 +1100
@@ -47,16 +47,16 @@ void StgFEM_Document_Register( AbstractC
 	Stream* componentListStream;
 
 	/* Print list of all components */
-	componentListStream = Journal_Register( Info_Type, "componentList" );
+	componentListStream = Journal_Register( Info_Type, (Name)"componentList"  );
 	Stream_RedirectFile_WithPrependedPath( componentListStream, context->outputPath, "ComponentList.txt" );
 	Stg_ComponentRegister_PrintAllTypes( Stg_ComponentRegister_Get_ComponentRegister(), componentListStream );
 
 	/* Print info for one component */
 	cf = DocumentationComponentFactory_New( );
 	Stream_RedirectFile_WithPrependedPath( cf->infoStream, context->outputPath, "Documentation.txt" );
-	DocumentationComponentFactory_DocumentType( cf, Dictionary_GetString( context->dictionary, "documentType" ) );
+	DocumentationComponentFactory_DocumentType( cf, Dictionary_GetString( context->dictionary, (Dictionary_Entry_Key)"documentType" ) );
 	
-	exit( EXIT_SUCCESS );
+	exit( EXIT_SUCCESS  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c
--- a/plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c	Thu Jan 14 17:42:23 2010 +1100
@@ -68,7 +68,7 @@ void FeVariable_ReadNodalValuesFromFile_
 	Index              currentFileLine = 0;
 	Coord              localGeometryMin;
 	Coord              localGeometryMax;
-	Stream*            debugStream = Journal_Register( Debug_Type, StgFEM_FeVariable_ImportExport_ABAQUS_Type );
+	Stream*            debugStream = Journal_Register( Debug_Type, (Name)StgFEM_FeVariable_ImportExport_ABAQUS_Type  );
 	FeMesh*		mesh = feVariable->feMesh;
 	MPI_Comm	comm;
 	unsigned	rank, nProcs;
@@ -99,7 +99,7 @@ void FeVariable_ReadNodalValuesFromFile_
 	}
 
 	if ( False == inputFile ) {
-		Stream*    errorStr = Journal_Register( Error_Type, feVariable->type );
+		Stream*    errorStr = Journal_Register( Error_Type, (Name)feVariable->type  );
 		Journal_Printf( errorStr, "Error- in %s(), for feVariable \"%s\": Couldn't find checkpoint file with "
 			"prefix \"%s\", timestep %d - thus full filename \"%s\" - aborting.\n", __func__, feVariable->name,
 			prefixStr, timeStep, filename );
@@ -203,7 +203,7 @@ void FeVariable_ReadNodalValuesFromFile_
 
 void FeVariable_SaveNodalValuesToFile_ABAQUS( void* _feVariable, const char* prefixStr, unsigned int timeStep ) {
 	FeVariable*      feVariable = (FeVariable*)_feVariable;
-	Stream*          errorStream = Journal_Register( Error_Type, StgFEM_FeVariable_ImportExport_ABAQUS_Type );
+	Stream*          errorStream = Journal_Register( Error_Type, (Name)StgFEM_FeVariable_ImportExport_ABAQUS_Type  );
 
 	Journal_Firewall( 0, errorStream, "Error - in %s(), for FeVariable \"%s\": function not implemented yet.\n",
 		__func__, feVariable->name );
@@ -213,7 +213,7 @@ void _StgFEM_FeVariable_ImportExport_ABA
 void _StgFEM_FeVariable_ImportExport_ABAQUS_AssignFromXML( void* componment, Stg_ComponentFactory* cf, void* data ) {
 	AbstractContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data );
 	
 }
 
@@ -237,8 +237,8 @@ void* _StgFEM_FeVariable_ImportExport_AB
 	return _Codelet_New(  CODELET_PASSARGS  );
 }
    
-Index StgFEM_FeVariable_ImportExport_ABAQUS_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, StgFEM_FeVariable_ImportExport_ABAQUS_Type, "0", _StgFEM_FeVariable_ImportExport_ABAQUS_DefaultNew );
+Index StgFEM_FeVariable_ImportExport_ABAQUS_Register( PluginsManager* pluginsManager  ) {
+	return PluginsManager_Submit( pluginsManager, StgFEM_FeVariable_ImportExport_ABAQUS_Type, (Name)"0", _StgFEM_FeVariable_ImportExport_ABAQUS_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/FeVariableImportExporters/FeVariable_ImportExport_SpecRidge2D/FeVariable_ImportExport_SpecRidge2D.c
--- a/plugins/FeVariableImportExporters/FeVariable_ImportExport_SpecRidge2D/FeVariable_ImportExport_SpecRidge2D.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/FeVariableImportExporters/FeVariable_ImportExport_SpecRidge2D/FeVariable_ImportExport_SpecRidge2D.c	Thu Jan 14 17:42:23 2010 +1100
@@ -67,7 +67,7 @@ void FeVariable_ReadNodalValuesFromFile_
 	Index              currentFileLine = 0;
 	Coord              localGeometryMin;
 	Coord              localGeometryMax;
-	Stream*            debugStream = Journal_Register( Debug_Type, StgFEM_FeVariable_ImportExport_SpecRidge2D_Type );
+	Stream*            debugStream = Journal_Register( Debug_Type, (Name)StgFEM_FeVariable_ImportExport_SpecRidge2D_Type  );
 	FeMesh*		mesh = feVariable->feMesh;
 	MPI_Comm	comm;
 	unsigned	rank, nProcs;
@@ -98,7 +98,7 @@ void FeVariable_ReadNodalValuesFromFile_
 	}
 
 	if ( False == inputFile ) {
-		Stream*    errorStr = Journal_Register( Error_Type, feVariable->type );
+		Stream*    errorStr = Journal_Register( Error_Type, (Name)feVariable->type  );
 		Journal_Printf( errorStr, "Error- in %s(), for feVariable \"%s\": Couldn't find checkpoint file with "
 			"prefix \"%s\", timestep %d - thus full filename \"%s\" - aborting.\n", __func__, feVariable->name,
 			prefixStr, timeStep, filename );
@@ -206,7 +206,7 @@ void FeVariable_ReadNodalValuesFromFile_
 
 void FeVariable_SaveNodalValuesToFile_SpecRidge2D( void* _feVariable, const char* prefixStr, unsigned int timeStep ) {
 	FeVariable*      feVariable = (FeVariable*)_feVariable;
-	Stream*          errorStream = Journal_Register( Error_Type, StgFEM_FeVariable_ImportExport_SpecRidge2D_Type );
+	Stream*          errorStream = Journal_Register( Error_Type, (Name)StgFEM_FeVariable_ImportExport_SpecRidge2D_Type  );
 
 	Journal_Firewall( 0, errorStream, "Error - in %s(), for FeVariable \"%s\": function not implemented yet.\n",
 		__func__, feVariable->name );
@@ -216,7 +216,7 @@ void _StgFEM_FeVariable_ImportExport_Spe
 void _StgFEM_FeVariable_ImportExport_SpecRidge2D_AssignFromXML( void* componment, Stg_ComponentFactory* cf, void* data ) {
 	AbstractContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data );
 	
 }
 
@@ -240,8 +240,8 @@ void* _StgFEM_FeVariable_ImportExport_Sp
 	return _Codelet_New(  CODELET_PASSARGS  );
 }
    
-Index StgFEM_FeVariable_ImportExport_SpecRidge2D_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, StgFEM_FeVariable_ImportExport_SpecRidge2D_Type, "0", _StgFEM_FeVariable_ImportExport_SpecRidge2D_DefaultNew );
+Index StgFEM_FeVariable_ImportExport_SpecRidge2D_Register( PluginsManager* pluginsManager  ) {
+	return PluginsManager_Submit( pluginsManager, StgFEM_FeVariable_ImportExport_SpecRidge2D_Type, (Name)"0", _StgFEM_FeVariable_ImportExport_SpecRidge2D_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/FileAnalyticSolution/FileAnalyticSolution.c
--- a/plugins/FileAnalyticSolution/FileAnalyticSolution.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/FileAnalyticSolution/FileAnalyticSolution.c	Thu Jan 14 17:42:23 2010 +1100
@@ -66,13 +66,13 @@ void _FileAnalyticSolution_AssignFromXML
 	FeVariable*              feVarToTest;
 
 	_AnalyticSolution_AssignFromXML( self, cf, data );
-	varList = Dictionary_Get( cf->rootDict, self->name );
-	Journal_Firewall( varList != NULL, Journal_Register( Error_Type, self->type ), 
+	varList = Dictionary_Get( cf->rootDict, (Dictionary_Entry_Key)self->name  );
+	Journal_Firewall( varList != NULL, Journal_Register( Error_Type, (Name)self->type  ), 
 		"Error- in %s(): Can't find list in XML '%s'\n", __func__, self->name );
 
 	for ( var_I = 0; var_I < Dictionary_Entry_Value_GetCount( varList ); ++var_I ) {
 		varName = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( varList, var_I ) );
-		feVarToTest = Stg_ComponentFactory_ConstructByName( cf, varName, FeVariable, True, data );
+		feVarToTest = Stg_ComponentFactory_ConstructByName( cf, (Name)varName, FeVariable, True, data  );
 	
 		AnalyticSolution_RegisterFeVariableWithAnalyticFunction( self, feVarToTest, FileAnalyticSolution_DummyFunction );
 	}
@@ -127,7 +127,7 @@ void* _FileAnalyticSolution_DefaultNew( 
 /* This function is automatically run by StGermain when this plugin is loaded. The name must be "<plugin-name>_Register". */
 Index StgFEM_FileAnalyticSolution_Register( PluginsManager* pluginsManager ) {
 	/* A plugin is only properly registered once it returns the handle provided when submitting a codelet to StGermain. */
-	return PluginsManager_Submit( pluginsManager, FileAnalyticSolution_Type, "0", _FileAnalyticSolution_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, FileAnalyticSolution_Type, (Name)"0", _FileAnalyticSolution_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Multigrid/Multigrid.c
--- a/plugins/Multigrid/Multigrid.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Multigrid/Multigrid.c	Thu Jan 14 17:42:23 2010 +1100
@@ -91,8 +91,8 @@ void StgFEM_Multigrid_AssignFromXML( voi
 
     StgFEM_Multigrid_selfPointer = self;
 
-    self->sle = Stg_ComponentFactory_ConstructByName( cf, "stokesEqn", Stokes_SLE, True, data );
-    self->mgSolver = Stg_ComponentFactory_ConstructByName( cf, "mgSolver", PETScMGSolver, True, data );
+    self->sle = Stg_ComponentFactory_ConstructByName( cf, (Name)"stokesEqn", Stokes_SLE, True, data  );
+    self->mgSolver = Stg_ComponentFactory_ConstructByName( cf, (Name)"mgSolver", PETScMGSolver, True, data  );
 
     /* Replace the setup routine... hacky. */
     self->sle->solver->_solverSetup = StgFEM_Multigrid_SolverSetup;   
@@ -137,10 +137,7 @@ void* StgFEM_Multigrid_New( Name name ) 
 }
 
 Index StgFEM_Multigrid_Register( PluginsManager* mgr ) {
-    return PluginsManager_Submit( mgr,
-                                  StgFEM_Multigrid_Type,
-                                  "0",
-                                  StgFEM_Multigrid_New );
+    return PluginsManager_Submit( mgr, StgFEM_Multigrid_Type, (Name)"0", StgFEM_Multigrid_New  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/CPUTime/CPUTime.c
--- a/plugins/Output/CPUTime/CPUTime.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/CPUTime/CPUTime.c	Thu Jan 14 17:42:23 2010 +1100
@@ -49,7 +49,7 @@ const Type StgFEM_CPUTime_Type = "StgFEM
 const Type StgFEM_CPUTime_Type = "StgFEM_CPUTime";
 
 void StgFEM_CPUTime_PrintTimeInfo( AbstractContext* context ) {
-	StgFEM_CPUTime* self = (StgFEM_CPUTime*)LiveComponentRegister_Get( context->CF->LCRegister, StgFEM_CPUTime_Type );
+	StgFEM_CPUTime* self = (StgFEM_CPUTime*)LiveComponentRegister_Get( context->CF->LCRegister, (Name)StgFEM_CPUTime_Type  );
 
 	/* Print Current Time Taken */
 	StgFEM_FrequentOutput_PrintValue( context, MPI_Wtime() - self->initialTime );
@@ -59,12 +59,12 @@ void _StgFEM_CPUTime_AssignFromXML( void
 	StgFEM_CPUTime* self 		= (StgFEM_CPUTime*)componment;
 	Dictionary*	pluginDict	= Codelet_GetPluginDictionary( self, cf->rootDict );
 
-	self->context = Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict, "Context" ), AbstractContext, True, data );
+	self->context = Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict, (Dictionary_Entry_Key)"Context"  ), AbstractContext, True, data );
 	if( !self->context )
-		self->context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
+		self->context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data ); 
 	
 	/* Initialise Timer */
-	self->initialTime = MPI_Wtime();
+	self->initialTime = MPI_Wtime( );
 
 	/* Print Header to file */
 	StgFEM_FrequentOutput_PrintString( self->context, "CPU_Time" );
@@ -93,7 +93,7 @@ void* _StgFEM_CPUTime_DefaultNew( Name n
 }
    
 Index StgFEM_CPUTime_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, StgFEM_CPUTime_Type, "0", _StgFEM_CPUTime_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_CPUTime_Type, (Name)"0", _StgFEM_CPUTime_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve.c
--- a/plugins/Output/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve/CPUTimeAndNumberOfIterationsForInnerAndOuterSolve.c	Thu Jan 14 17:42:23 2010 +1100
@@ -54,10 +54,10 @@ const Type StgFEM_CPUTimeAndNumberOfIter
 
 void StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_PrintTimeInfo( AbstractContext* context ) {
 	StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve*	self;
-	Stokes_SLE*	sle  = (Stokes_SLE*) LiveComponentRegister_Get( context->CF->LCRegister, "stokesEqn");
-	SLE_Solver*	solver = (SLE_Solver*) LiveComponentRegister_Get( context->CF->LCRegister, "uzawa");
+	Stokes_SLE*	sle  = (Stokes_SLE*) LiveComponentRegister_Get( context->CF->LCRegister, (Name)"stokesEqn");
+	SLE_Solver*	solver = (SLE_Solver* ) LiveComponentRegister_Get( context->CF->LCRegister, (Name)"uzawa");
 
-	self = (StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve*)LiveComponentRegister_Get( context->CF->LCRegister, StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_Type );
+	self = (StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve* )LiveComponentRegister_Get( context->CF->LCRegister, (Name)StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_Type  );
 	
 	/* Print Current Average InnerIteration Time Taken */
 	StgFEM_FrequentOutput_PrintValue( context, solver->avgtimeinnerits);
@@ -80,7 +80,7 @@ void _StgFEM_CPUTimeAndNumberOfIteration
 void _StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_AssignFromXML( void* component, Stg_ComponentFactory* cf, void* data ) {
 	StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve* self = (StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve*)component;
 	AbstractContext* context;
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  ); 
 	self->context = context;
 		
 	ContextEP_Append( context, AbstractContext_EP_FrequentOutput ,StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_PrintTimeInfo );
@@ -88,7 +88,7 @@ void _StgFEM_CPUTimeAndNumberOfIteration
 
 void _StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_Initialise( void* component, void* data ) {
 	StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve* self = (StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve*)component;
-	Stokes_SLE*  sle  = (Stokes_SLE*) LiveComponentRegister_Get( self->context->CF->LCRegister, "stokesEqn");
+	Stokes_SLE*  sle  = (Stokes_SLE*) LiveComponentRegister_Get( self->context->CF->LCRegister, (Name)"stokesEqn" );
 		
 	/*this isn't set to true before the initialise phase*/
 	
@@ -123,7 +123,7 @@ void* _StgFEM_CPUTimeAndNumberOfIteratio
 }
    
 Index StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_Type, "0", _StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_Type, (Name)"0", _StgFEM_CPUTimeAndNumberOfIterationsForInnerAndOuterSolve_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/FeVariableList/FeVariableList.c
--- a/plugins/Output/FeVariableList/FeVariableList.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/FeVariableList/FeVariableList.c	Thu Jan 14 17:42:23 2010 +1100
@@ -59,23 +59,23 @@ void _StgFEM_FeVariableList_AssignFromXM
    Bool                            fileOpened;
    Bool                            PrintToFile;
    
-   self->context = context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
+   self->context = context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data  );
    dictionary  = context->dictionary;
       
    /* Create Stream */
-   stream = self->stream = Journal_Register( InfoStream_Type, "FeVariableList" );
+   stream = self->stream = Journal_Register( InfoStream_Type, (Name)"FeVariableList"  );
    
    /* Set auto flush on stream */
    Stream_SetAutoFlush( stream, True );
    
    /* Print to screen or to file? */
-   PrintToFile = Dictionary_GetBool_WithDefault( dictionary, "FeVariableListPrintToFile", True );
-   if(PrintToFile){
+   PrintToFile = Dictionary_GetBool_WithDefault( dictionary, (Dictionary_Entry_Key)"FeVariableListPrintToFile", True );
+   if(PrintToFile ){
           /* Get name of fevariable list file */
           fevariableListFilename = Dictionary_GetString_WithDefault( dictionary, "FeVariableListFilename", "FeVariables.list" );
           /* Open New File */
           if ( context->rank == MASTER ) {
-                  Stream* errorStream = Journal_Register( Error_Type, CURR_MODULE_NAME );
+                  Stream* errorStream = Journal_Register( Error_Type, (Name)CURR_MODULE_NAME  );
                   fileOpened          = Stream_RedirectFile_WithPrependedPath( stream, context->outputPath, fevariableListFilename );
                   Journal_Firewall( fileOpened, errorStream,
                                   "Could not open file %s/%s. Possibly directory %s does not exist or is not writable.\n"
@@ -107,7 +107,7 @@ void* _StgFEM_FeVariableList_DefaultNew(
 }
 
 Index StgFEM_FeVariableList_Register( PluginsManager* pluginsManager ) {
-   return PluginsManager_Submit( pluginsManager, StgFEM_FeVariableList_Type, "0", _StgFEM_FeVariableList_DefaultNew );
+   return PluginsManager_Submit( pluginsManager, StgFEM_FeVariableList_Type, (Name)"0", _StgFEM_FeVariableList_DefaultNew  );
 }
 
 void StgFEM_FeVariableList_PrintVariables( void* _self, void* data ){
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/FrequentOutput/FrequentOutput.c
--- a/plugins/Output/FrequentOutput/FrequentOutput.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/FrequentOutput/FrequentOutput.c	Thu Jan 14 17:42:23 2010 +1100
@@ -58,10 +58,10 @@ void _StgFEM_FrequentOutput_AssignFromXM
 	Stream*                            stream;
 	Name                               frequentOutputFilename;
 	Bool                               fileOpened;
-	Stream*                            errorStream  = Journal_Register( Error_Type, CURR_MODULE_NAME );
+	Stream*                            errorStream  = Journal_Register( Error_Type, (Name)CURR_MODULE_NAME  );
 	Dictionary*			   pluginDict	= Codelet_GetPluginDictionary( self, cf->rootDict );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict, "Context" ), AbstractContext, True, data );
+	context = Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict, (Dictionary_Entry_Key)"Context"  ), AbstractContext, True, data );
 	self->context = context;
 	dictionary = context->dictionary;
 	
@@ -70,7 +70,7 @@ void _StgFEM_FrequentOutput_AssignFromXM
 	ContextEP_Append_AlwaysLast(   context, AbstractContext_EP_FrequentOutput, StgFEM_FrequentOutput_PrintNewLine );
 	
 	/* Create Stream */
-	stream = self->stream = Journal_Register( InfoStream_Type, "FrequentOutputFile" );
+	stream = self->stream = Journal_Register( InfoStream_Type, (Name)"FrequentOutputFile"  );
 
 	/* Set auto flush on stream */
 	Stream_SetAutoFlush( stream, True );
@@ -80,7 +80,7 @@ void _StgFEM_FrequentOutput_AssignFromXM
 
 	/* Open File */
 	if ( context->rank == MASTER ) {
-		if ( (context->loadFromCheckPoint == False) && (Dictionary_GetBool_WithDefault( context->dictionary, "visualOnly", False ) == False ) ) {
+		if ( (context->loadFromCheckPoint == False) && (Dictionary_GetBool_WithDefault( context->dictionary, (Dictionary_Entry_Key)"visualOnly", False ) == False )  ) {
 			/* Always overwrite the file if starting a new run */
 			fileOpened = Stream_RedirectFile_WithPrependedPath( stream, context->outputPath, frequentOutputFilename );
 		}
@@ -125,16 +125,14 @@ void* _StgFEM_FrequentOutput_DefaultNew(
 }
 
 Index StgFEM_FrequentOutput_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, StgFEM_FrequentOutput_Type, "0", _StgFEM_FrequentOutput_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_FrequentOutput_Type, (Name)"0", _StgFEM_FrequentOutput_DefaultNew  );
 }
 
 void StgFEM_FrequentOutput_PrintString( void* _context, char* string ) {
 	AbstractContext*                   context = (AbstractContext*) _context;
 	Stream*                            stream;
 
-	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( 
-									context->CF->LCRegister, 
-									StgFEM_FrequentOutput_Type );
+	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( context->CF->LCRegister, (Name)StgFEM_FrequentOutput_Type  );
 	stream     = self->stream;
 
 	/* Print some empty space at start */
@@ -149,9 +147,7 @@ void StgFEM_FrequentOutput_PrintDouble( 
 	char*                              formatString;
 	Stream*                            stream;
 
-	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( 
-									context->CF->LCRegister,
-									StgFEM_FrequentOutput_Type );
+	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( context->CF->LCRegister, (Name)StgFEM_FrequentOutput_Type  );
 
 	stream     = self->stream;
 
@@ -169,14 +165,12 @@ void StgFEM_FrequentOutput_PrintHeader( 
 	char*                              firstBorderString;
 	Stream*                            stream;
 
-	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( 
-									context->CF->LCRegister, 
-									StgFEM_FrequentOutput_Type );
+	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( context->CF->LCRegister, (Name)StgFEM_FrequentOutput_Type );
 	
 	stream     = self->stream;
 
 	/* Print First Boarder with '#' in the front */
-	firstBorderString = StG_Strdup( self->borderString );
+	firstBorderString = StG_Strdup( self->borderString  );
 	firstBorderString[0] = '#';
 	Journal_Printf( stream, firstBorderString );
 	Memory_Free( firstBorderString );
@@ -197,9 +191,7 @@ void StgFEM_FrequentOutput_PrintNewLine(
 	AbstractContext*                   context = (AbstractContext*) _context;
 	Stream*                            stream;
 
-	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( 
-									context->CF->LCRegister, 
-									StgFEM_FrequentOutput_Type );
+	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get( context->CF->LCRegister, (Name)StgFEM_FrequentOutput_Type  );
 	
 	stream     = self->stream;
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/PeakMemory/PeakMemory.c
--- a/plugins/Output/PeakMemory/PeakMemory.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/PeakMemory/PeakMemory.c	Thu Jan 14 17:42:23 2010 +1100
@@ -74,10 +74,8 @@ void _StgFEM_PeakMemory_AssignFromXML( v
 	/* Turn on the magical petsc logging */
 	PetscMemorySetGetMaximumUsage();
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
-	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput*)LiveComponentRegister_Get(
-                  context->CF->LCRegister,
-                  StgFEM_FrequentOutput_Type );
+	context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data ); 
+	StgFEM_FrequentOutput* self = (StgFEM_FrequentOutput* )LiveComponentRegister_Get( context->CF->LCRegister, (Name)StgFEM_FrequentOutput_Type  );
 
 	/* set the stupid stream column width so I don't get "..." behaviour */
 	self->columnWidth = 15;
@@ -111,7 +109,7 @@ void* _StgFEM_PeakMemory_DefaultNew( Nam
 }
    
 Index StgFEM_PeakMemory_Register( PluginsManager* pluginsManager ) {
-	return PluginsManager_Submit( pluginsManager, StgFEM_PeakMemory_Type, "0", _StgFEM_PeakMemory_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_PeakMemory_Type, (Name)"0", _StgFEM_PeakMemory_DefaultNew  );
 }
 
 
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/PrintFeVariableDiscreteValues/Plugin.c
--- a/plugins/Output/PrintFeVariableDiscreteValues/Plugin.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/PrintFeVariableDiscreteValues/Plugin.c	Thu Jan 14 17:42:23 2010 +1100
@@ -55,7 +55,7 @@ void _StgFEM_PrintFeVariableDiscreteValu
 void _StgFEM_PrintFeVariableDiscreteValues_AssignFromXML( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext* context;
 
-	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ); 
+	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data  ); 
 	
 	ContextEP_Append( context, AbstractContext_EP_Dump, PrintFeVariableDiscreteValues );
 }
@@ -75,12 +75,12 @@ Index StgFEM_PrintFeVariableDiscreteValu
 Index StgFEM_PrintFeVariableDiscreteValues_Register( PluginsManager* pluginsManager ) {
 	Journal_DPrintf( StgFEM_Debug, "In: %s( void* )\n", __func__ );
 	
-	return PluginsManager_Submit( pluginsManager, StgFEM_PrintFeVariableDiscreteValues_Type, "0", _StgFEM_PrintFeVariableDiscreteValues_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_PrintFeVariableDiscreteValues_Type, (Name)"0", _StgFEM_PrintFeVariableDiscreteValues_DefaultNew );
 }
 
 
 void PrintFeVariableDiscreteValues( void* _context ) {
-	FiniteElementContext*			context = (FiniteElementContext*)_context;
+	FiniteElementContext*			context = (FiniteElementContext* )_context;
 	FeVariable*				currFeVar;
 	Stream*					stream;
 	Name					currFeVarName;
@@ -88,12 +88,12 @@ void PrintFeVariableDiscreteValues( void
 	Dictionary_Entry_Value*			currFvParam=NULL;
 	Index					feVar_I=0;
 	Index					numFeVarsToPrint=0;
-	Stream*					warningStr = Journal_Register( Error_Type, CURR_MODULE_NAME );
+	Stream*					warningStr = Journal_Register( Error_Type, (Name)CURR_MODULE_NAME  );
 	
-	stream = Journal_Register( Info_Type, CURR_MODULE_NAME );
+	stream = Journal_Register( Info_Type, (Name)CURR_MODULE_NAME  );
 
-	feVarList = Dictionary_Get( context->dictionary, (char*)PRINT_FE_VARIABLE_DISCRETE_VALUES_TAG );
-	if ( NULL == feVarList ) {
+	feVarList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)(char*)PRINT_FE_VARIABLE_DISCRETE_VALUES_TAG );
+	if ( NULL == feVarList  ) {
 		Journal_Printf( warningStr, "Warning - in %s: Plugin \"%s\" loaded, but no \"%s\" tag found "
 			"in dictionary. Not printing any FE vars.\n", __func__, CURR_MODULE_NAME, PRINT_FE_VARIABLE_DISCRETE_VALUES_TAG );
 		return;
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c
--- a/plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c	Thu Jan 14 17:42:23 2010 +1100
@@ -55,7 +55,7 @@ void _StgFEM_PrintFeVariableDiscreteValu
 void _StgFEM_PrintFeVariableDiscreteValues_2dBox_AssignFromXML( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext* context;
 
-	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ); 
+	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, True, data  ); 
 	/* Add extensions to nodes, elements and the context */
 
 	/* Add extensions to functionality (entry points) */ 
@@ -77,12 +77,12 @@ Index StgFEM_PrintFeVariableDiscreteValu
 Index StgFEM_PrintFeVariableDiscreteValues_2dBox_Register( PluginsManager* pluginsManager ) {
 	Journal_DPrintf( StgFEM_Debug, "In: %s( void* )\n", __func__ );
 
-	return PluginsManager_Submit( pluginsManager, StgFEM_PrintFeVariableDiscreteValues_2dBox_Type, "0", _StgFEM_PrintFeVariableDiscreteValues_2dBox_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_PrintFeVariableDiscreteValues_2dBox_Type, (Name)"0", _StgFEM_PrintFeVariableDiscreteValues_2dBox_DefaultNew );
 }
 
 
 void PrintFeVariableDiscreteValues_2dBox( void* _context ) {
-	FiniteElementContext*			context = (FiniteElementContext*)_context;
+	FiniteElementContext*			context = (FiniteElementContext* )_context;
 	FeVariable*				currFeVar;
 	Stream*					stream;
 	Name					currFeVarName;
@@ -90,12 +90,12 @@ void PrintFeVariableDiscreteValues_2dBox
 	Dictionary_Entry_Value*			currFvParam=NULL;
 	Index					feVar_I=0;
 	Index					numFeVarsToPrint=0;
-	Stream*					warningStr = Journal_Register( Error_Type, CURR_MODULE_NAME );
+	Stream*					warningStr = Journal_Register( Error_Type, (Name)CURR_MODULE_NAME  );
 	
-	stream = Journal_Register( Info_Type, CURR_MODULE_NAME );
+	stream = Journal_Register( Info_Type, (Name)CURR_MODULE_NAME  );
 
-	feVarList = Dictionary_Get( context->dictionary, (char*)PRINT_FE_VARIABLE_DISCRETE_VALUES_2D_BOX_TAG );
-	if ( NULL == feVarList ) {
+	feVarList = Dictionary_Get( context->dictionary, (Dictionary_Entry_Key)(char*)PRINT_FE_VARIABLE_DISCRETE_VALUES_2D_BOX_TAG );
+	if ( NULL == feVarList  ) {
 		Journal_Printf( warningStr, "Warning - in %s: Plugin \"%s\" loaded, but no \"%s\" tag found "
 			"in dictionary. Not printing any FE vars.\n", __func__, CURR_MODULE_NAME, PRINT_FE_VARIABLE_DISCRETE_VALUES_2D_BOX_TAG );
 		return;
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/Output/SwarmVariableList/SwarmVariableList.c
--- a/plugins/Output/SwarmVariableList/SwarmVariableList.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/Output/SwarmVariableList/SwarmVariableList.c	Thu Jan 14 17:42:23 2010 +1100
@@ -61,24 +61,24 @@ void _StgFEM_SwarmVariableList_AssignFro
         Bool                            fileOpened;
         Bool                            PrintToFile;
 
-        self->context       = context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
+        self->context       = context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, (Name)"context", AbstractContext, True, data );
         dictionary          = context->dictionary;
-        self->swarmRegister = Swarm_Register_GetSwarm_Register();
+        self->swarmRegister = Swarm_Register_GetSwarm_Register( );
 
         /** create stream **/
-        stream = self->stream = Journal_Register( InfoStream_Type, "SwarmVariableList" );
+        stream = self->stream = Journal_Register( InfoStream_Type, (Name)"SwarmVariableList"  );
 
         /** set auto flush on stream **/
         Stream_SetAutoFlush( stream, True );
 
         /** print to screen or to file? **/
-        PrintToFile = Dictionary_GetBool_WithDefault( dictionary, "SwarmVariableListPrintToFile", True );
-        if(PrintToFile){
+        PrintToFile = Dictionary_GetBool_WithDefault( dictionary, (Dictionary_Entry_Key)"SwarmVariableListPrintToFile", True );
+        if(PrintToFile ){
                 /** get name of SwarmVariable list file **/
                 swarmVariableListFilename = Dictionary_GetString_WithDefault( dictionary, "SwarmVariableListFilename", "SwarmVariables.list" );
                 /** open new file **/
                 if ( context->rank == MASTER ) {
-                        Stream* errorStream = Journal_Register( Error_Type, CURR_MODULE_NAME );
+                        Stream* errorStream = Journal_Register( Error_Type, (Name)CURR_MODULE_NAME  );
                         fileOpened          = Stream_RedirectFile_WithPrependedPath( stream, context->outputPath, swarmVariableListFilename );
                         Journal_Firewall( fileOpened, errorStream,
                                         "Could not open file %s/%s. Possibly directory %s does not exist or is not writable.\n"
@@ -110,7 +110,7 @@ void* _StgFEM_SwarmVariableList_DefaultN
 }
 
 Index StgFEM_SwarmVariableList_Register( PluginsManager* pluginsManager ) {
-        return PluginsManager_Submit( pluginsManager, StgFEM_SwarmVariableList_Type, "0", _StgFEM_SwarmVariableList_DefaultNew );
+        return PluginsManager_Submit( pluginsManager, StgFEM_SwarmVariableList_Type, (Name)"0", _StgFEM_SwarmVariableList_DefaultNew  );
 }
 
 void StgFEM_SwarmVariableList_PrintVariables( void* _self, void* data ){
@@ -138,9 +138,9 @@ void StgFEM_SwarmVariableList_PrintVaria
    
    /** print swarm variables **/
    for(swarmcountindex = 0; swarmcountindex < swarmCount; ++swarmcountindex){
-          currentSwarm = (Swarm*)Stg_ComponentFactory_ConstructByName( context->CF, self->swarmRegister->swarmList->data[swarmcountindex]->name, Swarm, True, NULL );
+          currentSwarm = (Swarm*)Stg_ComponentFactory_ConstructByName( context->CF, (Name)self->swarmRegister->swarmList->data[swarmcountindex]->name, Swarm, True, NULL );
           variablecount = currentSwarm->swarmVariable_Register->objects->count;
-          for(countindex = 0; countindex < variablecount; ++countindex){
+          for(countindex = 0; countindex < variablecount; ++countindex ){
                   Journal_PrintString_WithLength( stream, currentSwarm->swarmVariable_Register->objects->data[ countindex ]->name, columnWidth );
                   Journal_PrintString_WithLength( stream, self->swarmRegister->swarmList->data[swarmcountindex]->name, columnWidth );
                   Journal_Printf( stream, "\n");
diff -r fe089b369b12 -r c3b4e4b75a06 plugins/StandardConditionFunctions/StandardConditionFunctions.c
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.c	Sun Jan 10 22:25:09 2010 +1100
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.c	Thu Jan 14 17:42:23 2010 +1100
@@ -55,126 +55,126 @@ void _StgFEM_StandardConditionFunctions_
 	ConditionFunction*      condFunc;
 	Dictionary*		pluginDict	= Codelet_GetPluginDictionary( component, cf->rootDict );
 
-	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict, "Context" ), AbstractContext, True, data );
+	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, Dictionary_GetString( pluginDict, (Dictionary_Entry_Key)"Context"  ), AbstractContext, True, data );
 	self->context = context;
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SolidBodyRotation, "Velocity_SolidBodyRotation" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SolidBodyRotation, (Name)"Velocity_SolidBodyRotation"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_PartialRotationX, "Velocity_PartialRotationX" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_PartialRotationX, (Name)"Velocity_PartialRotationX"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 		
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_PartialRotationY, "Velocity_PartialRotationY" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_PartialRotationY, (Name)"Velocity_PartialRotationY"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SimpleShear, "Velocity_SimpleShear" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SimpleShear, (Name)"Velocity_SimpleShear"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
-        condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SimpleShearInverted, "Velocity_SimpleShearInverted" );
+        condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SimpleShearInverted, (Name)"Velocity_SimpleShearInverted"  );
         ConditionFunction_Register_Add( condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_Extension, "Velocity_Extension" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_Extension, (Name)"Velocity_Extension"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_PartialLid_TopLayer, "Velocity_PartialLid_TopLayer" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_PartialLid_TopLayer, (Name)"Velocity_PartialLid_TopLayer"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_Trigonometry, "Temperature_Trigonometry" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_Trigonometry, (Name)"Temperature_Trigonometry"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearInterpolationLid, "Velocity_LinearInterpolationLid" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearInterpolationLid, (Name)"Velocity_LinearInterpolationLid"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_Lid_RampWithCentralMax, "Velocity_Lid_RampWithCentralMax" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_Lid_RampWithCentralMax, (Name)"Velocity_Lid_RampWithCentralMax"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearVelocityLeftWall, "LinearVelocityLeftWall" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearVelocityLeftWall, (Name)"LinearVelocityLeftWall"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearVelocityRightWall, "LinearVelocityRightWall" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearVelocityRightWall, (Name)"LinearVelocityRightWall"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SinusoidalLid, "Velocity_SinusoidalLid" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SinusoidalLid, (Name)"Velocity_SinusoidalLid"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_CornerOnly, "Velocity_Lid_CornerOnly" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_CornerOnly, (Name)"Velocity_Lid_CornerOnly"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_TemperatureCosineHill, "Temperature_CosineHill" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_TemperatureCosineHill, (Name)"Temperature_CosineHill"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ConvectionBenchmark, "Temperature_ConvectionBenchmark" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ConvectionBenchmark, (Name)"Temperature_ConvectionBenchmark"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearWithSinusoidalPerturbation, "LinearWithSinusoidalPerturbation" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_LinearWithSinusoidalPerturbation, (Name)"LinearWithSinusoidalPerturbation"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_EdgeDriveConvectionIC, "EdgeDriveConvectionIC" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_EdgeDriveConvectionIC, (Name)"EdgeDriveConvectionIC"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ThermalEdgeDriveConvectionIC, "ThermalEdgeDriveConvectionIC" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ThermalEdgeDriveConvectionIC, (Name)"ThermalEdgeDriveConvectionIC"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_AnalyticalTemperatureIC, "AnalyticalTemperatureIC" );
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_AnalyticalTemperatureIC, (Name)"AnalyticalTemperatureIC"  );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( Stg_FEM_VelicTemperatureIC, "VelicTemperatureIC");
+	condFunc = ConditionFunction_New( Stg_FEM_VelicTemperatureIC, (Name)"VelicTemperatureIC" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
-	condFunc = ConditionFunction_New( Stg_FEM_VelicTemperatureIC_SolB, "VelicTemperatureIC_SolB");
+	condFunc = ConditionFunction_New( Stg_FEM_VelicTemperatureIC_SolB, (Name)"VelicTemperatureIC_SolB" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 	
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SinusoidalExtension, "SinusoidalExtension");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SinusoidalExtension, (Name)"SinusoidalExtension" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_StepFunction, "StepFunction");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_StepFunction, (Name)"StepFunction" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_MovingStepFunction, "MovingStepFunction");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_MovingStepFunction, (Name)"MovingStepFunction" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpecRidge3D, "SpecRidge3D");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpecRidge3D, (Name)"SpecRidge3D" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCX, "SpectralBCX");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCX, (Name)"SpectralBCX" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCY, "SpectralBCY");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCY, (Name)"SpectralBCY" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCZ, "SpectralBCZ");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCZ, (Name)"SpectralBCZ" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralPressureBCX, "SpectralPressureBCX");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralPressureBCX, (Name)"SpectralPressureBCX" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralPressureBCY, "SpectralPressureBCY");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralPressureBCY, (Name)"SpectralPressureBCY" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ErrorFunc, "ErrorFunc");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ErrorFunc, (Name)"ErrorFunc" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ConstantVector, "ConstantVector");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ConstantVector, (Name)"ConstantVector" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_GaussianDistribution, "GaussianDistribution");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_GaussianDistribution, (Name)"GaussianDistribution" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_1DGaussianDistribution, "1DGaussianDistribution");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_1DGaussianDistribution, (Name)"1DGaussianDistribution" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_HalfContainer, "HalfContainer");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_HalfContainer, (Name)"HalfContainer" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ConstantValue, "ConstantValue");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ConstantValue, (Name)"ConstantValue" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_DiagonalLine, "DiagonalLine");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_DiagonalLine, (Name)"DiagonalLine" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_DeltaFunction, "DeltaFunction");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_DeltaFunction, (Name)"DeltaFunction" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_InflowBottom, "InflowBottom");
+	condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_InflowBottom, (Name)"InflowBottom" );
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-        condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_GaussianTube, "GaussianTube");
+        condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_GaussianTube, (Name)"GaussianTube" );
         ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
-        condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_GravitationalPotential, "GravitationalPotential");
+        condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_GravitationalPotential, (Name)"GravitationalPotential" );
         ConditionFunction_Register_Add( condFunc_Register, condFunc );
 }
 
@@ -193,7 +193,7 @@ Index StgFEM_StandardConditionFunctions_
 Index StgFEM_StandardConditionFunctions_Register( PluginsManager* pluginsManager ) {
 	Journal_DPrintf( StgFEM_Debug, "In: %s( void* )\n", __func__ );
 
-	return PluginsManager_Submit( pluginsManager, StgFEM_StandardConditionFunctions_Type, "0", _StgFEM_StandardConditionFunctions_DefaultNew );
+	return PluginsManager_Submit( pluginsManager, StgFEM_StandardConditionFunctions_Type, (Name)"0", _StgFEM_StandardConditionFunctions_DefaultNew  );
 }
 
 void StgFEM_StandardConditionFunctions_SolidBodyRotation( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
@@ -211,10 +211,10 @@ void StgFEM_StandardConditionFunctions_S
 	mesh       = feVariable->feMesh;
 
 	/* Find Centre of Solid Body Rotation */
-	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreX", 0.0 );
-	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreY", 0.0 );
-	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreZ", 0.0 );
-	omega            = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationOmega",   1.0 );
+	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreX", 0.0  );
+	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreY", 0.0  );
+	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ", 0.0  );
+	omega            = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationOmega", 1.0  );
 
 	/* Find coordinate of node */
 	coord = Mesh_GetVertex( mesh, node_lI );
@@ -243,12 +243,12 @@ void StgFEM_StandardConditionFunctions_P
 	mesh       = feVariable->feMesh;
 
 	/* Find Centre of Solid Body Rotation */
-	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreX", 0.0 );
-	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreY", 0.0 );
-	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreZ", 0.0 );
-	size             = Dictionary_GetDouble_WithDefault( dictionary, "RadiusCylinder", 0.0 );
+	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreX", 0.0  );
+	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreY", 0.0  );
+	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ", 0.0  );
+	size             = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"RadiusCylinder", 0.0  );
 	size += 0.1;
-	omega            = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationOmega",   1.0 );
+	omega            = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationOmega", 1.0  );
 
 	/* Find coordinate of node */
 	coord = Mesh_GetVertex( mesh, node_lI );
@@ -281,12 +281,12 @@ void StgFEM_StandardConditionFunctions_P
 	mesh       = feVariable->feMesh;
 
 	/* Find Centre of Solid Body Rotation */
-	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreX", 0.0 );
-	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreY", 0.0 );
-	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreZ", 0.0 );
-	size             = Dictionary_GetDouble_WithDefault( dictionary, "RadiusCylinder", 0.0 );
+	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreX", 0.0  );
+	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreY", 0.0  );
+	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ", 0.0  );
+	size             = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"RadiusCylinder", 0.0  );
 	size += 0.1;
-	omega            = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationOmega",   1.0 );
+	omega            = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationOmega", 1.0  );
 
 	/* Find coordinate of node */
 	coord = Mesh_GetVertex( mesh, node_lI );
@@ -318,8 +318,8 @@ void StgFEM_StandardConditionFunctions_S
 	mesh       = feVariable->feMesh;
 
 	/* Find Centre of Solid Body Rotation */
-	centre = Dictionary_GetDouble_WithDefault( dictionary, "SimpleShearCentreY", 0.0 );
-	factor = Dictionary_GetDouble_WithDefault( dictionary, "SimpleShearFactor", 1.0 );
+	centre = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearCentreY", 0.0  );
+	factor = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearFactor", 1.0  );
 
 	/* Find coordinate of node */
 	coord = Mesh_GetVertex( mesh, node_lI );
@@ -342,8 +342,8 @@ void StgFEM_StandardConditionFunctions_S
         mesh       = feVariable->feMesh;
 
         /* Find Centre of Solid Body Rotation */
-        centre = Dictionary_GetDouble_WithDefault( dictionary, "SimpleShearCentreY", 0.0 );
-        factor = Dictionary_GetDouble_WithDefault( dictionary, "SimpleShearFactor", 1.0 );
+        centre = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearCentreY", 0.0  );
+        factor = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearFactor", 1.0  );
 
         /* Find coordinate of node */
         coord = Mesh_GetVertex( mesh, node_lI );
@@ -368,8 +368,8 @@ void StgFEM_StandardConditionFunctions_E
 	mesh       = feVariable->feMesh;
 
 	/* Find Centre of Solid Body Rotation */
-	centre = Dictionary_GetDouble_WithDefault( dictionary, "ExtensionCentreX", 0.0 );
-	factor = Dictionary_GetDouble_WithDefault( dictionary, "ExtensionFactor", 1.0 );
+	centre = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ExtensionCentreX", 0.0  );
+	factor = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ExtensionFactor", 1.0  );
 
 	/* Find coordinate of node */
 	coord = Mesh_GetVertex( mesh, node_lI );
@@ -418,10 +418,10 @@ void StgFEM_StandardConditionFunctions_L
 
 	Mesh_GetGlobalCoordRange( mesh, min, max );
 	boxLength = max[I_AXIS] - min[I_AXIS];
-	leftHandSideValue = Dictionary_GetDouble_WithDefault( context->dictionary, "bcLeftHandSideValue", 0.0 );
-	rightHandSideValue = Dictionary_GetDouble_WithDefault( context->dictionary, "bcRightHandSideValue", 1.0 );
+	leftHandSideValue = Dictionary_GetDouble_WithDefault( context->dictionary, (Dictionary_Entry_Key)"bcLeftHandSideValue", 0.0  );
+	rightHandSideValue = Dictionary_GetDouble_WithDefault( context->dictionary, (Dictionary_Entry_Key)"bcRightHandSideValue", 1.0 );
 	gradient = (rightHandSideValue - leftHandSideValue) / boxLength;
-	(*velResult) = leftHandSideValue + gradient * (Mesh_GetVertex( mesh, node_lI )[I_AXIS] - min[I_AXIS] );
+	(*velResult ) = leftHandSideValue + gradient * (Mesh_GetVertex( mesh, node_lI )[I_AXIS] - min[I_AXIS] );
 }
 
 
@@ -458,7 +458,7 @@ void StgFEM_StandardConditionFunctions_L
 	velVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
 	mesh = velVar->feMesh;
 
-	maxvel = Dictionary_GetDouble_WithDefault( dictionary, "MaximumVelocity_Left", 0.0 );
+	maxvel = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"MaximumVelocity_Left", 0.0  );
 	Mesh_GetGlobalCoordRange( mesh, min, max );
 	gradient = maxvel/(min[1] - max[1]);
 	
@@ -477,7 +477,7 @@ void StgFEM_StandardConditionFunctions_L
 	velVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
 	mesh = velVar->feMesh;
 
-	maxvel = Dictionary_GetDouble_WithDefault( dictionary, "MaximumVelocity_Right", 0.0 );
+	maxvel = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"MaximumVelocity_Right", 0.0  );
 	Mesh_GetGlobalCoordRange( mesh, min, max );
 	gradient = maxvel/(max[1] - min[1]);
 	 
@@ -496,9 +496,9 @@ void StgFEM_StandardConditionFunctions_S
 	double          	wavenumber;
 	double			min[3], max[3];
 
-	wavenumber = Dictionary_GetDouble_WithDefault( context->dictionary, "sinusoidalLidWavenumber", 1 );
+	wavenumber = Dictionary_GetDouble_WithDefault( context->dictionary, (Dictionary_Entry_Key)"sinusoidalLidWavenumber", 1 );
 	
-	velVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
+	velVar = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
 	mesh = velVar->feMesh;
 
 	Mesh_GetGlobalCoordRange( mesh, min, max );
@@ -520,7 +520,7 @@ void StgFEM_StandardConditionFunctions_C
 	velVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
 	feMesh = velVar->feMesh;
 	elGrid = *(Grid**)ExtensionManager_Get( feMesh->info, feMesh, 
-						ExtensionManager_GetHandle( feMesh->info, "elGrid" ) );
+						ExtensionManager_GetHandle( feMesh->info, (Name)"elGrid" )  );
 
 	node_gI = Mesh_DomainToGlobal( feMesh, MT_VERTEX, node_lI );
 	RegularMeshUtils_Node_1DTo3D( feMesh, node_gI, inds );
@@ -558,18 +558,18 @@ void StgFEM_StandardConditionFunctions_T
 	feMesh       = feVariable->feMesh;
 
 	/* Read values from dictionary */
-	hillHeight       = Dictionary_GetDouble_WithDefault( dictionary, "CosineHillHeight"  , 1.0 );
-	hillDiameter     = Dictionary_GetDouble_WithDefault( dictionary, "CosineHillDiameter", 1.0 );
-	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "CosineHillCentreX" , 0.0 );
-	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "CosineHillCentreY" , 0.0 );
-	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "CosineHillCentreZ" , 0.0 );
+	hillHeight       = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"CosineHillHeight"  , 1.0  );
+	hillDiameter     = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"CosineHillDiameter", 1.0  );
+	centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"CosineHillCentreX" , 0.0  );
+	centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"CosineHillCentreY" , 0.0  );
+	centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"CosineHillCentreZ" , 0.0  );
 
 	if ( Dictionary_GetBool( dictionary, "RotateCosineHill" ) ) {
 		/* Assume solid body rotation */
-		rotationCentre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreX", 0.0 );
-		rotationCentre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreY", 0.0 );
-		rotationCentre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreZ", 0.0 );
-		omega                    = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationOmega",   1.0 );
+		rotationCentre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreX", 0.0  );
+		rotationCentre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreY", 0.0  );
+		rotationCentre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ", 0.0  );
+		omega                    = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationOmega", 1.0  );
 
 		StGermain_VectorSubtraction( centre, rotationCentre, centre, context->dim );
 		StGermain_RotateCoordinateAxis( centre, centre, K_AXIS, omega * context->currentTime );
@@ -603,17 +603,17 @@ void StgFEM_StandardConditionFunctions_L
 	nDims = Mesh_GetDimSize( feMesh );
 	Mesh_GetGlobalCoordRange( feMesh, min, max );
 
-	topLayerCoord = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_TopLayerCoord", max[J_AXIS] );
-	bottomLayerCoord = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_BottomLayerCoord", min[J_AXIS] );
+	topLayerCoord = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_TopLayerCoord", max[J_AXIS]  );
+	bottomLayerCoord = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_BottomLayerCoord", min[J_AXIS]  );
 
-	topLayerBC = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_TopLayerBC", 0.0 );
-	bottomLayerBC = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_BottomLayerBC", 1.0 );
+	topLayerBC = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_TopLayerBC", 0.0  );
+	bottomLayerBC = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_BottomLayerBC", 1.0  );
 	scaleFactor = bottomLayerBC - topLayerBC;
-	perturbationAmplitude = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_PerturbationAmplitude", 0.1 );
+	perturbationAmplitude = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_PerturbationAmplitude", 0.1  );
 	/* Note: these are both multiplied by pi, so wavenumber = 1 means the perturbation goes from 0 to pi, which is
 	 * half a full sin or cos cycle. Wavenumber = 3 means the range is 0 -> 3pi, or 1 and a half full cycles. */
-	horizontalWaveNumber = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_HorizontalWaveNumber", 1.0 );
-	verticalWaveNumber = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_VerticalWaveNumber", 1.0 );
+	horizontalWaveNumber = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_HorizontalWaveNumber", 1.0  );
+	verticalWaveNumber = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_VerticalWaveNumber", 1.0  );
 
 	coord = Mesh_GetVertex( feMesh, node_lI );
 
@@ -684,9 +684,9 @@ void Stg_FEM_VelicTemperatureIC( Node_Lo
 	x = coord[ I_AXIS ] - min[ I_AXIS ];
 	y = coord[ J_AXIS ] - min[ J_AXIS ];
 
-	wavenumberX = Dictionary_GetInt_WithDefault( dictionary, "wavenumberX", 1 );
-	wavenumberY = Dictionary_GetDouble_WithDefault( dictionary, "wavenumberY", 1.0 );
-	sigma = Dictionary_GetDouble_WithDefault( dictionary, "sigma", 1.0 );
+	wavenumberX = Dictionary_GetInt_WithDefault( dictionary, (Dictionary_Entry_Key)"wavenumberX", 1  );
+	wavenumberY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"wavenumberY", 1.0  );
+	sigma = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"sigma", 1.0 );
 	
 	assert( sigma > 0.0 );
 	assert( wavenumberY > 0.0 );
@@ -695,7 +695,7 @@ void Stg_FEM_VelicTemperatureIC( Node_Lo
 	kx = (double)wavenumberX * M_PI / Lx;
 	ky = (double)wavenumberY * M_PI;
 
-	*result = sigma * sin( ky * y ) * cos( kx * x );
+	*result = sigma * sin( ky * y ) * cos( kx * x  );
 }
 
 /* IC from Mirko Velic. This is the IC temperature for his solB, from his Analytic Suite. Added 22-May-2006 */
@@ -727,16 +727,16 @@ void Stg_FEM_VelicTemperatureIC_SolB( No
 	x = coord[ I_AXIS ] - min[ I_AXIS ];
 	y = coord[ J_AXIS ] - min[ J_AXIS ];
 
-	wavenumberX = Dictionary_GetInt_WithDefault( dictionary, "wavenumberX", 1 );
-	wavenumberY = Dictionary_GetDouble_WithDefault( dictionary, "wavenumberY", 2.0 );
-	assert( wavenumberX != wavenumberY );
-	sigma = Dictionary_GetDouble_WithDefault( dictionary, "sigma", 1.0 );
+	wavenumberX = Dictionary_GetInt_WithDefault( dictionary, (Dictionary_Entry_Key)"wavenumberX", 1  );
+	wavenumberY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"wavenumberY", 2.0 );
+	assert( wavenumberX != wavenumberY  );
+	sigma = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"sigma", 1.0 );
 
 	kn = wavenumberX * M_PI / L;
 /* 	 TODO: Re-write Mirko's code and/or Documentation so the input parameters for these ICs are less confusing */
 	km = wavenumberY / L;
 
-	*result = sigma * sinh( km * y ) * cos( kn * x );
+	*result = sigma * sinh( km * y ) * cos( kn * x  );
 }
 
 
@@ -810,8 +810,8 @@ void StgFEM_StandardConditionFunctions_E
 	
 	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );        
 	mesh       = feVariable->feMesh;        
-	perturbationAmplitude = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalTempIC_PerturbationAmplitude", 0.1 );        
-	thermalAnomalyOffset = Dictionary_GetDouble_WithDefault( dictionary, "thermalAnomalyOffset", 0.0 );        
+	perturbationAmplitude = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_PerturbationAmplitude", 0.1  );        
+	thermalAnomalyOffset = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"thermalAnomalyOffset", 0.0  );        
 	coord = Mesh_GetVertex( mesh, node_lI );
 	
 	/* eqn 1 from S.D.King & D.L. Anderson, "Edge-drive convection", EPSL 160 (1998) 289-296 */        
@@ -837,22 +837,22 @@ void StgFEM_StandardConditionFunctions_T
         mesh       = feVariable->feMesh;
         coord = Mesh_GetVertex( mesh, node_lI );
         
-	dim = Dictionary_GetInt_WithDefault( dictionary, "dim", 0.0 );
-        contStartX = Dictionary_GetDouble_WithDefault( dictionary, "contStartX", 0.0 );
-        contEndX = Dictionary_GetDouble_WithDefault( dictionary, "contEndX", 0.0 );
-        contStartY = Dictionary_GetDouble_WithDefault( dictionary, "contStartY", 0.0 );
-        contEndY = Dictionary_GetDouble_WithDefault( dictionary, "contEndY", 0.0 );
-        minY = Dictionary_GetDouble_WithDefault( dictionary, "minY", 0.0 );
-        maxY = Dictionary_GetDouble_WithDefault( dictionary, "maxY", 0.0 );
-	interiorTemp = Dictionary_GetDouble_WithDefault( dictionary, "interiorTemp", 1.0 );
-        if ( dim == 3 ) {
-                contStartZ = Dictionary_GetDouble_WithDefault( dictionary, "contStartZ", 0.0 );
-                contEndZ = Dictionary_GetDouble_WithDefault( dictionary, "contEndZ", 0.0 );
+	dim = Dictionary_GetInt_WithDefault( dictionary, (Dictionary_Entry_Key)"dim", 0.0  );
+        contStartX = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contStartX", 0.0  );
+        contEndX = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contEndX", 0.0  );
+        contStartY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contStartY", 0.0  );
+        contEndY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contEndY", 0.0  );
+        minY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"minY", 0.0  );
+        maxY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"maxY", 0.0  );
+	interiorTemp = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"interiorTemp", 1.0 );
+        if ( dim == 3  ) {
+                contStartZ = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contStartZ", 0.0  );
+                contEndZ = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contEndZ", 0.0 );
         }
 
         if(( coord[I_AXIS] >= contStartX && coord[ I_AXIS ] <= contEndX ) && ( coord[J_AXIS] >= contStartY && coord[ J_AXIS ] <= contEndY )) {
                 if ( dim == 3 ) {
-                        if ( coord[K_AXIS] >= contStartZ && coord[ K_AXIS ] <= contEndZ )
+                        if ( coord[K_AXIS] >= contStartZ && coord[ K_AXIS ] <= contEndZ  )
                                         *result = 0.0;
                         else
                                         *result = interiorTemp;
@@ -871,13 +871,13 @@ void StgFEM_StandardConditionFunctions_S
 	double                  amplitude;
 	double                  phaseShift;
 
-	frequency  = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalExtensionFrequency", 1.0 );
-	vel0       = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalExtensionVelocity", 0.0 );
-	amplitude  = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalExtensionAmplitude", 0.0 );
-	phaseShift = Dictionary_GetDouble_WithDefault( dictionary, "SinusoidalExtensionPhaseShift", 0.0 );
+	frequency  = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalExtensionFrequency", 1.0  );
+	vel0       = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalExtensionVelocity", 0.0  );
+	amplitude  = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalExtensionAmplitude", 0.0  );
+	phaseShift = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalExtensionPhaseShift", 0.0 );
 
 
-	*result = vel0 + amplitude * cos( 2.0 * M_PI * frequency * (context->currentTime + context->dt - phaseShift ) );
+	*result = vel0 + amplitude * cos( 2.0 * M_PI * frequency * (context->currentTime + context->dt - phaseShift )  );
 }
 
 
@@ -902,16 +902,16 @@ void StgFEM_StandardConditionFunctions_S
 	feMesh       = feVariable->feMesh;
 	coord      = Mesh_GetVertex( feMesh, node_lI );
 
-	offset = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionOffset", 0.0 );
-	/* value = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionValue", 0.0 ); */
+	offset = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionOffset", 0.0  );
+	/* value = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionValue", 0.0  ); */
 	dim = Dictionary_GetUnsignedInt_WithDefault( dictionary, "StepFunctionDim", 0 );
-	/* less = Dictionary_GetBool_WithDefault( dictionary, "StepFunctionLessThan", True ); */
-	left = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionLeftSide", 0.0 );
-	right = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionRightSide", 0.0 );
-	leftBegin = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionLeftBegin", 0.0 );
-	rightEnd = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionRightEnd", 0.0 );
-	grad = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionGradient", 0.0 );
-	useGrad = Dictionary_GetBool_WithDefault( dictionary, "StepFunctionUseGradient", False );
+	/* less = Dictionary_GetBool_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionLessThan", True  ); */
+	left = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionLeftSide", 0.0  );
+	right = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionRightSide", 0.0  );
+	leftBegin = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionLeftBegin", 0.0  );
+	rightEnd = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionRightEnd", 0.0  );
+	grad = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionGradient", 0.0  );
+	useGrad = Dictionary_GetBool_WithDefault( dictionary, (Dictionary_Entry_Key)"StepFunctionUseGradient", False );
 
 	/*if( less ) {
 		if( coord[dim] < offset ) {
@@ -926,7 +926,7 @@ void StgFEM_StandardConditionFunctions_S
 	else {
 		if( coord[dim] > offset ) {
 			if( useGrad )
-				*result = (coord[dim] - offset)*grad;
+				*result = (coord[dim] - offset )*grad;
 			else
 				*result = value;
 		}
@@ -991,13 +991,13 @@ void StgFEM_StandardConditionFunctions_M
 
    /*
    ** Extract all the parameters we need from the dictionary. */
-   offsetLower = Dictionary_GetDouble_WithDefault( dict, "MovingStepFunctionOffsetLower", 0.0 );
-   offsetUpper = Dictionary_GetDouble_WithDefault( dict, "MovingStepFunctionOffsetUpper", 0.0 );
+   offsetLower = Dictionary_GetDouble_WithDefault( dict, (Dictionary_Entry_Key)"MovingStepFunctionOffsetLower", 0.0  );
+   offsetUpper = Dictionary_GetDouble_WithDefault( dict, (Dictionary_Entry_Key)"MovingStepFunctionOffsetUpper", 0.0  );
    dim = Dictionary_GetUnsignedInt_WithDefault( dict, "MovingStepFunctionDim", 0 );
-   left = Dictionary_GetDouble_WithDefault( dict, "MovingStepFunctionLeftSide", 0.0 );
-   right = Dictionary_GetDouble_WithDefault( dict, "MovingStepFunctionRightSide", 0.0 );
+   left = Dictionary_GetDouble_WithDefault( dict, (Dictionary_Entry_Key)"MovingStepFunctionLeftSide", 0.0  );
+   right = Dictionary_GetDouble_WithDefault( dict, (Dictionary_Entry_Key)"MovingStepFunctionRightSide", 0.0  );
    movingWall = Dictionary_GetString_WithDefault( dict, "MovingStepFunctionMovingWall", "lower" );
-   wallDepth = Dictionary_GetInt_WithDefault( dict, "MovingStepFunctionWallDepth", 0 );
+   wallDepth = Dictionary_GetInt_WithDefault( dict, (Dictionary_Entry_Key)"MovingStepFunctionWallDepth", 0  );
 
    /*
    ** Because we're dealing with a moving step function, we need to calculate
@@ -1066,13 +1066,13 @@ void StgFEM_StandardConditionFunctions_C
 	Dictionary*             dictionary         = context->dictionary;
 	double*                 result             = (double*) _result;
 	
-	result[0] = Dictionary_GetDouble_WithDefault( dictionary, "ConstantValueX", 0.0 );
-	result[1] = Dictionary_GetDouble_WithDefault( dictionary, "ConstantValueY", 0.0 );
-  if (context->dim == 3 ) 
-    result[2] = Dictionary_GetDouble_WithDefault( dictionary, "ConstantValueZ", 0.0 );
+	result[0] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ConstantValueX", 0.0  );
+	result[1] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ConstantValueY", 0.0 );
+  if (context->dim == 3  ) 
+    result[2] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ConstantValueZ", 0.0 );
 }
 
-/* 3D spec ridge top BC (for milestone 1 of magma project) 
+/* 3D spec ridge top BC (for milestone 1 of magma project ) 
  * to be applied to the top x-z plane of the domain */
 void StgFEM_StandardConditionFunctions_SpecRidge3D( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	FiniteElementContext *	context            = (FiniteElementContext*)_context;
@@ -1095,16 +1095,16 @@ void StgFEM_StandardConditionFunctions_S
 	feMesh     = feVariable->feMesh;
 	coord      = Mesh_GetVertex( feMesh, node_lI );
 
-	leftVal = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DLeftSide", 0.0 );
-	rightVal = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DRightSide", 0.0 );
-	xOffset1 = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DXOffset1", 0.0 );
-	xOffset2 = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DXOffset2", 0.0 );
-	yOffset1 = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DZOffset1", 0.0 );
-	yOffset2 = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DZOffset2", 0.0 );
-	xBegin = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DXBegin", 0.0 );
-	xEnd = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DXEnd", 0.0 );
-	zBegin = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DZBegin", 0.0 );
-	zEnd = Dictionary_GetDouble_WithDefault( dictionary, "SpecRidge3DZEnd", 0.0 );
+	leftVal = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DLeftSide", 0.0  );
+	rightVal = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DRightSide", 0.0  );
+	xOffset1 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DXOffset1", 0.0  );
+	xOffset2 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DXOffset2", 0.0  );
+	yOffset1 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DZOffset1", 0.0  );
+	yOffset2 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DZOffset2", 0.0  );
+	xBegin = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DXBegin", 0.0  );
+	xEnd = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DXEnd", 0.0  );
+	zBegin = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DZBegin", 0.0  );
+	zEnd = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DZEnd", 0.0 );
 
 	if( coord[0] < xBegin || coord[0] > xEnd ||
 	    coord[2] < zBegin || coord[2] > zEnd )
@@ -1113,7 +1113,7 @@ void StgFEM_StandardConditionFunctions_S
 	}
 	else if( coord[0] < xOffset1 )
 		*result = leftVal;
-	else if( coord[0] < xOffset2 && coord[2] > yOffset1 && coord[2] < yOffset2 )
+	else if( coord[0] < xOffset2 && coord[2] > yOffset1 && coord[2] < yOffset2  )
 		*result = leftVal;
 	else
 		*result = rightVal;
@@ -1280,13 +1280,13 @@ void StgFEM_StandardConditionFunctions_E
 	feMesh      = feVariable->feMesh;
 	coord       = Mesh_GetVertex( feMesh, node_lI );
 
-	dilate      = Dictionary_GetDouble_WithDefault( dictionary, "ErrorFuncDilate", 0.0 );
-	width       = Dictionary_GetDouble_WithDefault( dictionary, "ErrorFuncWidth", 0.0 );
+	dilate      = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ErrorFuncDilate", 0.0  );
+	width       = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ErrorFuncWidth", 0.0 );
 
 	if( coord[0] < -1.0*width ) {
 		*result = -1.0;
 	}
-	else if( coord[0] > width ) {
+	else if( coord[0] > width  ) {
 		*result = 1.0;
 	}
 	else {
@@ -1304,23 +1304,23 @@ void StgFEM_StandardConditionFunctions_G
 	unsigned		nDims              = context->dim;
 	unsigned		dim_I;
 	double			orig[3];
-	double			sigma              = Dictionary_GetDouble_WithDefault( dictionary, "sigma", 1.0 );
-	double			gaussianScale      = Dictionary_GetDouble_WithDefault( dictionary, "GaussianScale", 1.0 );
-	double			background         = Dictionary_GetDouble_WithDefault( dictionary, "backgroundValue", 1.0 );
+	double			sigma              = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"sigma", 1.0  );
+	double			gaussianScale      = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianScale", 1.0  );
+	double			background         = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"backgroundValue", 1.0  );
 	double			distsq             = 0.0;
 
 	variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
 	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
 	coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
 
-	orig[0] = Dictionary_GetDouble_WithDefault( dictionary, "x0", 0.0 );
-	orig[1] = Dictionary_GetDouble_WithDefault( dictionary, "y0", 0.0 );
-	orig[2] = Dictionary_GetDouble_WithDefault( dictionary, "z0", 0.0 );
+	orig[0] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"x0", 0.0  );
+	orig[1] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"y0", 0.0  );
+	orig[2] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"z0", 0.0 );
 
 	for( dim_I = 0; dim_I < nDims; dim_I++ )
 		distsq += ( coord[dim_I] - orig[dim_I] ) * ( coord[dim_I] - orig[dim_I] );
 
-	*result = gaussianScale * exp( -distsq / ( 2.0 * sigma * sigma ) ) + background;
+	*result = gaussianScale * exp( -distsq / ( 2.0 * sigma * sigma )  ) + background;
 }
 
 void StgFEM_StandardConditionFunctions_GravitationalPotential( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
@@ -1346,22 +1346,22 @@ void StgFEM_StandardConditionFunctions_1
 	Name			variableName;
 	double*			coord;
 	double			orig[3];
-	double			sigma              = Dictionary_GetDouble_WithDefault( dictionary, "sigma", 1.0 );
-	double			gaussianScale      = Dictionary_GetDouble_WithDefault( dictionary, "GaussianScale", 1.0 );
-	double			background         = Dictionary_GetDouble_WithDefault( dictionary, "backgroundValue", 1.0 );
+	double			sigma              = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"sigma", 1.0  );
+	double			gaussianScale      = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianScale", 1.0  );
+	double			background         = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"backgroundValue", 1.0  );
 	double			distsq             = 0.0;
 
 	variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
 	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
 	coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
 
-	orig[0] = Dictionary_GetDouble_WithDefault( dictionary, "x0", 0.0 );
-	orig[1] = Dictionary_GetDouble_WithDefault( dictionary, "y0", 0.0 );
-	orig[2] = Dictionary_GetDouble_WithDefault( dictionary, "z0", 0.0 );
+	orig[0] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"x0", 0.0  );
+	orig[1] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"y0", 0.0  );
+	orig[2] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"z0", 0.0 );
 
 	distsq = ( coord[J_AXIS] - orig[J_AXIS] ) * ( coord[J_AXIS] - orig[J_AXIS] );
 
-	*result = gaussianScale * exp( -distsq / ( 2.0 * sigma * sigma ) ) + background;
+	*result = gaussianScale * exp( -distsq / ( 2.0 * sigma * sigma )  ) + background;
 }
 
 void StgFEM_StandardConditionFunctions_HalfContainer( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
@@ -1371,7 +1371,7 @@ void StgFEM_StandardConditionFunctions_H
 	double*                 result             = (double*) _result;
 	Name			variableName;
 	double*			coord;
-	double			halfPoint          = Dictionary_GetDouble_WithDefault( dictionary, "halfPoint", 0.0 );
+	double			halfPoint          = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"halfPoint", 0.0  );
 
 	variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
 	feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
@@ -1387,7 +1387,7 @@ void StgFEM_StandardConditionFunctions_C
 	FiniteElementContext *	context            = (FiniteElementContext*)_context;
 	Dictionary*             dictionary         = context->dictionary;
 	double*                 result             = (double*) _result;
-	double			value              = Dictionary_GetDouble_WithDefault( dictionary, "constantValue", 1.0 );
+	double			value              = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"constantValue", 1.0  );
 
 	*result = value;
 }
@@ -1396,7 +1396,7 @@ void StgFEM_StandardConditionFunctions_D
 	FiniteElementContext *	context            = (FiniteElementContext*)_context;
 	Dictionary*             dictionary         = context->dictionary;
 	double*                 result             = (double*) _result;
-	double			width              = Dictionary_GetDouble_WithDefault( dictionary, "lineWidth", 1.0 );
+	double			width              = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"lineWidth", 1.0  );
 	double*			coord;
 	Name			variableName;
 	FeVariable*             feVariable         = NULL;
@@ -1415,10 +1415,10 @@ void StgFEM_StandardConditionFunctions_D
 	FiniteElementContext *	context            = (FiniteElementContext*)_context;
 	Dictionary*             dictionary         = context->dictionary;
 	double*                 result             = (double*) _result;
-	double			epsilon		   = Dictionary_GetDouble_WithDefault( dictionary, "deltaFunctionEpsilon", 0.001 );
+	double			epsilon		   = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"deltaFunctionEpsilon", 0.001  );
 	unsigned		dim		   = Dictionary_GetUnsignedInt_WithDefault( dictionary, "deltaFunctionDim", 0 );
-	double			centre		   = Dictionary_GetDouble_WithDefault( dictionary, "deltaFunctionCentre", 0.5 );
-	double			value		   = Dictionary_GetDouble_WithDefault( dictionary, "deltaFunctionValue", 1.0 );
+	double			centre		   = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"deltaFunctionCentre", 0.5  );
+	double			value		   = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"deltaFunctionValue", 1.0  );
 	double*			coord;
 	Name			variableName	   = Dictionary_GetString_WithDefault( dictionary, "DeltaFunctionFeVariable", "" );
 	FeVariable*		feVariable	   = (FeVariable*) FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
@@ -1442,7 +1442,7 @@ void StgFEM_StandardConditionFunctions_I
 	Mesh_GetGlobalCoordRange( mesh, min, max );
 	sideLength = max[1] - min[1];
 	wallLength = max[0] - min[0];
-	sideV = Dictionary_GetDouble_WithDefault( dictionary, "InflowSideVelocity", 1.0 );
+	sideV = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"InflowSideVelocity", 1.0  );
 
 	*result = 2.0 * sideV * sideLength / wallLength;
 }
@@ -1466,15 +1466,15 @@ void StgFEM_StandardConditionFunctions_G
         nDims = Mesh_GetDimSize( feMesh );
         Mesh_GetGlobalCoordRange( feMesh, min, max );
 
- 	a1 = Dictionary_GetDouble_WithDefault( dictionary, "GaussianTube_a1", 1.0 ); /* Scales the magnitude of the perturbation. */
-	c1 = Dictionary_GetDouble_WithDefault( dictionary, "GaussianTube_c1", 0.1 ); /* Controls the smoothing length. Smaller values produce less smoothing. */
+ 	a1 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_a1", 1.0  ); /* Scales the magnitude of the perturbation. */
+	c1 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_c1", 0.1  ); /* Controls the smoothing length. Smaller values produce less smoothing. */
 
-        a2 = Dictionary_GetDouble_WithDefault( dictionary, "GaussianTube_a2", 0.05 ); /* Controls ampltude of oscillations */
-        b2 = Dictionary_GetDouble_WithDefault( dictionary, "GaussianTube_b2", 6.28318530718 ); /* Controls frequency of oscillations */
-	c2 = Dictionary_GetDouble_WithDefault( dictionary, "GaussianTube_c2", 1.570796326795 ); /* Shifts oscillations */
+        a2 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_a2", 0.05  ); /* Controls ampltude of oscillations */
+        b2 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_b2", 6.28318530718  ); /* Controls frequency of oscillations */
+	c2 = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_c2", 1.570796326795  ); /* Shifts oscillations */
 
-	y_shift = Dictionary_GetDouble_WithDefault( dictionary, "GaussianTube_y_origin", 0.0 );
-	z_shift = Dictionary_GetDouble_WithDefault( dictionary, "GaussianTube_z_origin", 0.0 );
+	y_shift = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_y_origin", 0.0  );
+	z_shift = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_z_origin", 0.0  );
 
         coord = Mesh_GetVertex( feMesh, node_lI );
 



More information about the CIG-COMMITS mailing list