Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24377)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24378)
@@ -34,5 +34,4 @@
 	this->sid = -1;
 	this->lid = -1;
-	this->inputs     = NULL;
 	this->inputs2    = NULL;
 	this->nodes      = NULL;
@@ -44,5 +43,4 @@
 Element::~Element(){/*{{{*/
 	xDelete<int>(element_type_list);
-	delete inputs;
 }
 /*}}}*/
@@ -411,14 +409,8 @@
 
 	_printf_("   inputs\n");
-	if (inputs) inputs->DeepEcho();
-	else _printf_("inputs=NULL\n");
+	if(inputs2) inputs2->DeepEcho();
+	else _printf_("inputs2=NULL\n");
 
 	return;
-}
-/*}}}*/
-void       Element::DeleteInput(int input_enum){/*{{{*/
-
-	inputs->DeleteInput(input_enum);
-
 }
 /*}}}*/
@@ -934,6 +926,6 @@
 
 	_printf_("   inputs\n");
-	if (inputs) inputs->Echo();
-	else _printf_("inputs=NULL\n");
+	if (inputs2) inputs2->Echo();
+	else _printf_("inputs2=NULL\n");
 }
 /*}}}*/
@@ -2307,5 +2299,4 @@
 	_assert_(this);
 	if(marshall_direction==MARSHALLING_BACKWARD){
-		inputs=new Inputs();
 		nodes = NULL;
 	}
@@ -2318,6 +2309,4 @@
 	MARSHALLING(element_type);
 	MARSHALLING_DYNAMIC(element_type_list,int,numanalyses);
-	inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
-
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 24377)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 24378)
@@ -44,5 +44,4 @@
 		int          sid;
 		int          lid;
-		Inputs      *inputs;
 		Inputs2     *inputs2;
 		Node       **nodes;
@@ -69,5 +68,4 @@
 		void               CoordinateSystemTransform(IssmDouble** ptransform,Node** nodes,int numnodes,int* cs_array);
 		void               DeepEcho();
-		void               DeleteInput(int input_enum);
 		void               DeleteMaterials(void);
 		void               Delta18oParameterization(void);
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 24377)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 24378)
@@ -55,7 +55,4 @@
 	//this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
 	this->parameters=NULL;
-
-	/*intialize inputs: */
-	this->inputs=new Inputs();
 
 	/*initialize pointers:*/
@@ -122,6 +119,4 @@
 	penta->sid = this->sid;
 	penta->lid = this->lid;
-	if(this->inputs) penta->inputs = (Inputs*)(this->inputs->Copy());
-	else penta->inputs=new Inputs();
 	penta->isonbase  = this->isonbase;
 	penta->isonsurface  = this->isonsurface;
@@ -901,7 +896,4 @@
 	this->parameters=parametersin;
 	this->inputs2=inputs2in;
-
-	/*get inputs configured too: */
-	this->inputs->Configure(parameters);
 }
 /*}}}*/
@@ -2728,8 +2720,4 @@
 	delete tria->material; delete tria;
 
-	/*Delete Vx and Vy averaged*/
-	this->inputs->DeleteInput(VxAverageEnum);
-	this->inputs->DeleteInput(VyAverageEnum);
-
 	/*clean up and return*/
 	return mass_flux;
@@ -2750,8 +2738,4 @@
 	mass_flux=tria->MassFlux(x1,y1,x2,y2,segment_id);
 	delete tria->material; delete tria;
-
-	/*Delete Vx and Vy averaged*/
-	this->inputs->DeleteInput(VxAverageEnum);
-	this->inputs->DeleteInput(VyAverageEnum);
 
 	/*clean up and return*/
@@ -3404,18 +3388,4 @@
 
 	Tria* tria=(Tria*)SpawnTria(0,1,2);
-	switch(this->material->ObjectEnum()){
-		case MaticeEnum:
-			this->inputs->DeleteInput(MaterialsRheologyBbarEnum);
-			this->inputs->DeleteInput(DamageDbarEnum);
-			break;
-		case MatestarEnum:
-			break;
-		default:
-			_error_("not supported yet");
-	}
-	this->inputs->DeleteInput(VxAverageEnum);
-	this->inputs->DeleteInput(VyAverageEnum);
-	this->inputs->DeleteInput(CalvingratexAverageEnum);
-	this->inputs->DeleteInput(CalvingrateyAverageEnum);
 
 	return tria;
@@ -3443,5 +3413,4 @@
 	tria->sid=this->sid;
 	tria->lid=this->lid;
-	tria->inputs=NULL;//(Inputs*)this->inputs->SpawnTriaInputs(index1,index2,index3);
 	tria->parameters=this->parameters;
 	tria->inputs2=this->inputs2;
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 24377)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 24378)
@@ -40,7 +40,4 @@
 			this->parameters = NULL;
 
-			/*intialize inputs: */
-			this->inputs  = new Inputs();
-
 			/*initialize pointers:*/
 			this->nodes    = NULL;
@@ -102,6 +99,4 @@
 	seg->sid = this->sid;
 	seg->lid = this->lid;
-	if(this->inputs) seg->inputs = (Inputs*)(this->inputs->Copy());
-	else seg->inputs=new Inputs();
 	seg->isonbase  = this->isonbase;
 	seg->isonsurface  = this->isonsurface;
Index: /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 24377)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 24378)
@@ -35,7 +35,4 @@
 			//this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
 			this->parameters = NULL;
-
-			/*intialize inputs: */
-			this->inputs  = new Inputs();
 
 			/*initialize pointers:*/
@@ -104,6 +101,4 @@
 	tetra->sid = this->sid;
 	tetra->lid = this->lid;
-	if(this->inputs) tetra->inputs = (Inputs*)(this->inputs->Copy());
-	else tetra->inputs=new Inputs();
 	tetra->isonbase  = this->isonbase;
 	tetra->isonsurface  = this->isonsurface;
@@ -165,7 +160,4 @@
 	this->parameters=parametersin;
 	this->inputs2=inputs2in;
-
-	/*get inputs configured too: */
-	this->inputs->Configure(parameters);
 }
 /*}}}*/
@@ -658,5 +650,5 @@
 
 	/*For FS only: we want the CS to be tangential to the bedrock*/
-	inputs->GetInputValue(&approximation,ApproximationEnum);
+	this->GetInput2Value(&approximation,ApproximationEnum);
 	if(!HasNodeOnBase() ||  approximation!=FSApproximationEnum) return;
 
@@ -763,5 +755,4 @@
 	Tria* tria=new Tria();
 	tria->id=this->id;
-	tria->inputs=(Inputs*)this->inputs->SpawnTriaInputs(index1,index2,index3);
 	tria->parameters=this->parameters;
 	tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED)
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24377)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24378)
@@ -42,7 +42,4 @@
 		/*this->parameters: we still can't point to it, it may not even exist. Configure will handle this.*/
 		this->parameters = NULL;
-
-		/*intialize inputs: */
-		this->inputs  = new Inputs();
 
 		/*initialize pointers:*/
@@ -126,6 +123,4 @@
 	tria->sid = this->sid;
 	tria->lid = this->lid;
-	if(this->inputs) tria->inputs = (Inputs*)(this->inputs->Copy());
-	else tria->inputs=new Inputs();
 	tria->isonbase  = this->isonbase;
 	tria->isonsurface  = this->isonsurface;
@@ -1098,8 +1093,4 @@
 	this->parameters=parametersin;
 	this->inputs2=inputs2in;
-
-	/*get inputs configured too: */
-	this->inputs->Configure(this->parameters);
-
 }/*}}}*/
 void       Tria::ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N, int M){/*{{{*/
@@ -3115,5 +3106,4 @@
 	/*Add new input to current element*/
 	_error_("not implemented");
-	this->inputs->AddInput((Input*)newinput);
 }
 /*}}}*/
@@ -4116,5 +4106,4 @@
 	seg->sid=this->sid;
 	seg->lid=this->lid;
-	seg->inputs=NULL;//(Inputs*)this->inputs->SpawnSegInputs(index1,index2);
 	seg->inputs2=this->inputs2;
 	seg->parameters=this->parameters;
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 24377)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 24378)
@@ -1764,5 +1764,6 @@
 	for(i=0;i<this->elements->Size();i++){
 		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
-		element_maxabsvx=element->inputs->MaxAbs(VxEnum);
+		Input2*  input = element->GetInput2(VxEnum);
+		element_maxabsvx=input->GetInputMaxAbs();
 		if(element_maxabsvx>maxabsvx) maxabsvx=element_maxabsvx;
 	}
@@ -1788,5 +1789,6 @@
 	for(i=0;i<this->elements->Size();i++){
 		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
-		element_maxabsvy=element->inputs->MaxAbs(VyEnum);
+		Input2*  input = element->GetInput2(VyEnum);
+		element_maxabsvy=input->GetInputMaxAbs();
 		if(element_maxabsvy>maxabsvy) maxabsvy=element_maxabsvy;
 	}
@@ -1812,5 +1814,6 @@
 	for(i=0;i<this->elements->Size();i++){
 		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
-		element_maxabsvz=element->inputs->MaxAbs(VzEnum);
+		Input2*  input = element->GetInput2(VzEnum);
+		element_maxabsvz=input->GetInputMaxAbs();
 		if(element_maxabsvz>maxabsvz) maxabsvz=element_maxabsvz;
 	}
@@ -1955,5 +1958,6 @@
 	for(i=0;i<this->elements->Size();i++){
 		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
-		element_minvel = element->inputs->Min(VelEnum);
+		Input2*  input = element->GetInput2(VelEnum);
+		element_minvel =input->GetInputMin();
 		if(element_minvel<minvel) minvel=element_minvel;
 	}
@@ -1979,5 +1983,6 @@
 	for(i=0;i<this->elements->Size();i++){
 		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
-		element_minvx = element->inputs->Min(VxEnum);
+		Input2*  input = element->GetInput2(VxEnum);
+		element_minvx =input->GetInputMin();
 		if(element_minvx<minvx) minvx=element_minvx;
 	}
@@ -2003,5 +2008,6 @@
 	for(i=0;i<this->elements->Size();i++){
 		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
-		element_minvy = element->inputs->Min(VyEnum);
+		Input2*  input = element->GetInput2(VyEnum);
+		element_minvy =input->GetInputMin();
 		if(element_minvy<minvy) minvy=element_minvy;
 	}
@@ -2027,5 +2033,6 @@
 	for(i=0;i<this->elements->Size();i++){
 		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
-		element_minvz = element->inputs->Min(VzEnum);
+		Input2*  input = element->GetInput2(VzEnum);
+		element_minvz =input->GetInputMin();
 		if(element_minvz<minvz) minvz=element_minvz;
 	}
@@ -3637,5 +3644,5 @@
 			newtria->isonbase = true;
 			newtria->parameters=NULL;
-			newtria->inputs=new Inputs();
+			newtria->inputs2=NULL;
 			newtria->nodes=NULL;
 			newtria->vertices=NULL;
