Index: trunk/extremum_seeking/esc_ros/include/esc_ros/esc_ros.h
===================================================================
--- trunk/extremum_seeking/esc_ros/include/esc_ros/esc_ros.h	(revision 9)
+++ trunk/extremum_seeking/esc_ros/include/esc_ros/esc_ros.h	(revision 11)
@@ -18,6 +18,7 @@
 #include <esc_common/esc.h>
 #include <string>
-#include "esc_ros/monitor.h"
-#include "esc_ros/esc_w_state.h"
+#include <esc_ros/Monitors.h>
+#include <esc_ros/StateValue.h>
+
 class ESCROS{
 protected:
@@ -39,5 +40,5 @@
 protected:
 	virtual void objValCallback(std_msgs::Float32 msg);
-	virtual void objValWithStateCallback(esc_ros::esc_w_state msg);
+	virtual void objValWithStateCallback(esc_ros::StateValue msg);
 
 };
Index: trunk/extremum_seeking/esc_ros/msg/Monitors.msg
===================================================================
--- trunk/extremum_seeking/esc_ros/msg/Monitors.msg	(revision 11)
+++ trunk/extremum_seeking/esc_ros/msg/Monitors.msg	(revision 11)
@@ -0,0 +1,2 @@
+string[]  names
+float32[] values
Index: trunk/extremum_seeking/esc_ros/msg/StateValue.msg
===================================================================
--- trunk/extremum_seeking/esc_ros/msg/StateValue.msg	(revision 11)
+++ trunk/extremum_seeking/esc_ros/msg/StateValue.msg	(revision 11)
@@ -0,0 +1,2 @@
+float32[] state
+float32   value
Index: trunk/extremum_seeking/esc_ros/msg/esc_w_state.msg
===================================================================
--- trunk/extremum_seeking/esc_ros/msg/esc_w_state.msg	(revision 9)
+++ 	(revision )
@@ -1,2 +1,0 @@
-float64[] states
-float32 obj_val
Index: trunk/extremum_seeking/esc_ros/msg/monitor.msg
===================================================================
--- trunk/extremum_seeking/esc_ros/msg/monitor.msg	(revision 9)
+++ 	(revision )
@@ -1,2 +1,0 @@
-float64[] monitor_values
-string[] monitor_names
Index: trunk/extremum_seeking/esc_ros/src/esc_ros.cpp
===================================================================
--- trunk/extremum_seeking/esc_ros/src/esc_ros.cpp	(revision 9)
+++ trunk/extremum_seeking/esc_ros/src/esc_ros.cpp	(revision 11)
@@ -49,5 +49,5 @@
 
 	if(monitor_){
-		pub_monitor_ = n_->advertise<esc_ros::monitor>("monitor_out",1);
+		pub_monitor_ = n_->advertise<esc_ros::Monitors>("monitor_out",1);
 	}
 
@@ -57,8 +57,10 @@
 }
 
-void ESCROS::objValWithStateCallback(esc_ros::esc_w_state msg)
+void ESCROS::objValWithStateCallback(esc_ros::StateValue msg)
 {
-	obj_val_ = msg.obj_val;
-	state_vec_ = msg.states;
+	obj_val_ = msg.value;
+	state_vec_.resize(msg.state.size());
+	for (size_t ii=0; ii < state_vec_.size(); ++ii)
+  	  state_vec_[ii] = msg.state[ii];
 	if(!first_obj_val_received_)
 		first_obj_val_received_ = true;
@@ -97,7 +99,11 @@
 
 			if(monitor_){
-				esc_ros::monitor msg_monitor;
-				msg_monitor.monitor_values = esc_->monitor();
-				msg_monitor.monitor_names = esc_->monitorNames();
+				esc_ros::Monitors msg_monitor;
+				std::vector<double> values = esc_->monitor();
+				
+				msg_monitor.values.resize(values.size());
+				for (size_t ii=0; ii < values.size(); ++ii)
+				  msg_monitor.values[ii] = values[ii];
+				msg_monitor.names = esc_->monitorNames();
 				pub_monitor_.publish(msg_monitor);
 			}
