diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 47a3a4cd308c03de61eaea7f2ceb3bd1bcd6a1fb..8e08c6aa6cce2d53d3e1fabcfa3cf9ad822f2494 100755
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -2561,6 +2561,8 @@ void LLModelPreview::loadModelCallback(S32 lod)
 
 	mLoading = false;
 	refresh();
+
+	mModelLoadedSignal();
 }
 
 void LLModelPreview::resetPreviewTarget()
diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h
index 63377bb1d6de82d3f6d5d73da547853bd2393035..fbf6ead930ffdfdfbbb9e68785db1b8e141bcceb 100644
--- a/indra/newview/llfloatermodelpreview.h
+++ b/indra/newview/llfloatermodelpreview.h
@@ -251,7 +251,8 @@ class LLMeshFilePicker : public LLFilePickerThread
 class LLModelPreview : public LLViewerDynamicTexture, public LLMutex
 {	
 	typedef boost::signals2::signal<void (F32 x, F32 y, F32 z, F32 streaming_cost, F32 physics_cost)> details_signal_t;
- 
+	typedef boost::signals2::signal<void (void)> model_loaded_signal_t;
+
 public:
 	 LLModelPreview(S32 width, S32 height, LLFloater* fmp);
 	virtual ~LLModelPreview();
@@ -288,6 +289,7 @@ class LLModelPreview : public LLViewerDynamicTexture, public LLMutex
 	static void	textureLoadedCallback( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* src_aux, S32 discard_level, BOOL final, void* userdata );
 	
 	boost::signals2::connection setDetailsCallback( const details_signal_t::slot_type& cb ){  return mDetailsSignal.connect(cb);  }
+	boost::signals2::connection setModelLoadedCallback( const model_loaded_signal_t::slot_type& cb ){  return mModelLoadedSignal.connect(cb);  }
 	
  protected:
 	friend class LLFloaterModelPreview;
@@ -342,6 +344,7 @@ class LLModelPreview : public LLViewerDynamicTexture, public LLMutex
 	std::map<LLModel*, std::vector<LLPointer<LLVertexBuffer> > > mVertexBuffer[LLModel::NUM_LODS+1];
 
 	details_signal_t mDetailsSignal;
+	model_loaded_signal_t mModelLoadedSignal;
 };
 
 
diff --git a/indra/newview/llfloatermodelwizard.cpp b/indra/newview/llfloatermodelwizard.cpp
index 19bdea5f44bf28d92af4a0a8db59e35b4448d2a7..095499e6b053ce38c62c435b34c888452058bd40 100644
--- a/indra/newview/llfloatermodelwizard.cpp
+++ b/indra/newview/llfloatermodelwizard.cpp
@@ -52,7 +52,14 @@ static	const std::string stateNames[]={
 LLFloaterModelWizard::LLFloaterModelWizard(const LLSD& key)
 	: LLFloater(key)
 {
+	mLastEnabledState = CHOOSE_FILE;
 	sInstance = this;
+
+	mCommitCallbackRegistrar.add("Wizard.Choose", boost::bind(&LLFloaterModelWizard::setState, this, CHOOSE_FILE));
+	mCommitCallbackRegistrar.add("Wizard.Optimize", boost::bind(&LLFloaterModelWizard::setState, this, OPTIMIZE));
+	mCommitCallbackRegistrar.add("Wizard.Physics", boost::bind(&LLFloaterModelWizard::setState, this, PHYSICS));
+	mCommitCallbackRegistrar.add("Wizard.Review", boost::bind(&LLFloaterModelWizard::setState, this, REVIEW));
+	mCommitCallbackRegistrar.add("Wizard.Upload", boost::bind(&LLFloaterModelWizard::setState, this, UPLOAD));
 }
 LLFloaterModelWizard::~LLFloaterModelWizard()
 {
@@ -60,12 +67,12 @@ LLFloaterModelWizard::~LLFloaterModelWizard()
 }
 void LLFloaterModelWizard::setState(int state)
 {
+
 	mState = state;
-	setButtons(state);
 
 	for(size_t t=0; t<LL_ARRAY_SIZE(stateNames); ++t)
 	{
-		LLView *view = getChild<LLView>(stateNames[t]+"_panel");
+		LLView *view = getChildView(stateNames[t]+"_panel");
 		if (view) 
 		{
 			view->setVisible(state == (int) t ? TRUE : FALSE);
@@ -74,60 +81,101 @@ void LLFloaterModelWizard::setState(int state)
 
 	if (state == CHOOSE_FILE)
 	{
+		mModelPreview->mViewOption["show_physics"] = false;
+
+		getChildView("close")->setVisible(false);
+		getChildView("back")->setVisible(true);
 		getChildView("back")->setEnabled(false);
+		getChildView("next")->setVisible(true);
+		getChildView("upload")->setVisible(false);
+		getChildView("cancel")->setVisible(true);
 	}
 
 	if (state == OPTIMIZE)
 	{
-		getChildView("back")->setEnabled(true);
-		//mModelPreview->mModel[lod].clear();
-		mModelPreview->genLODs(-1);
+		if (mLastEnabledState < state)
+		{			
+			mModelPreview->genLODs(-1);
+		}
+
 		mModelPreview->mViewOption["show_physics"] = false;
+
+		getChildView("back")->setVisible(true);
+		getChildView("back")->setEnabled(true);
+		getChildView("close")->setVisible(false);
+		getChildView("next")->setVisible(true);
+		getChildView("upload")->setVisible(false);
+		getChildView("cancel")->setVisible(true);
 	}
 
 	if (state == PHYSICS)
 	{
-		mModelPreview->setPhysicsFromLOD(1);
+		if (mLastEnabledState < state)
+		{
+			mModelPreview->setPhysicsFromLOD(1);
+		}
+
 		mModelPreview->mViewOption["show_physics"] = true;
 
-		getChild<LLView>("next")->setVisible(true);
-		getChild<LLView>("upload")->setVisible(false);
+		getChildView("next")->setVisible(true);
+		getChildView("upload")->setVisible(false);
+		getChildView("close")->setVisible(false);
+		getChildView("back")->setVisible(true);
+		getChildView("back")->setEnabled(true);
+		getChildView("cancel")->setVisible(true);
 	}
 
 	if (state == REVIEW)
 	{
-		executePhysicsStage("Decompose");
-		getChild<LLView>("close")->setVisible(false);
-		getChild<LLView>("next")->setVisible(false);
-		getChild<LLView>("back")->setVisible(true);
-		getChild<LLView>("upload")->setVisible(true);
-		getChild<LLView>("cancel")->setVisible(true);
+		if (mLastEnabledState < state)
+		{
+			executePhysicsStage("Decompose");
+		}
+		
+		mModelPreview->mViewOption["show_physics"] = true;
+
+		getChildView("close")->setVisible(false);
+		getChildView("next")->setVisible(false);
+		getChildView("back")->setVisible(true);
+		getChildView("back")->setEnabled(true);
+		getChildView("upload")->setVisible(true);
+		getChildView("cancel")->setVisible(true);
 	}
 
 	if (state == UPLOAD)
 	{
-		getChild<LLView>("close")->setVisible(true);
-		getChild<LLView>("back")->setVisible(false);
-		getChild<LLView>("upload")->setVisible(false);
-		getChild<LLView>("cancel")->setVisible(false);
+		getChildView("close")->setVisible(true);
+		getChildView("next")->setVisible(false);
+		getChildView("back")->setVisible(false);
+		getChildView("upload")->setVisible(false);
+		getChildView("cancel")->setVisible(false);
 	}
+
+	updateButtons();
 }
 
-void LLFloaterModelWizard::setButtons(int state)
+
+
+void LLFloaterModelWizard::updateButtons()
 {
+	if (mLastEnabledState < mState)
+	{
+		mLastEnabledState = mState;
+	}
+
 	for(size_t i=0; i<LL_ARRAY_SIZE(stateNames); ++i)
 	{
 		LLButton *button = getChild<LLButton>(stateNames[i]+"_btn");
 
-		if (i < state)
+		if (i == mState)
 		{
 			button->setEnabled(TRUE);
-			button->setToggleState(FALSE);
+			button->setToggleState(TRUE);
 		}
-		else if (i == state)
+		else if (i <= mLastEnabledState)
 		{
 			button->setEnabled(TRUE);
-			button->setToggleState(TRUE);
+			button->setToggleState(FALSE);
 		}
 		else
 		{
@@ -426,7 +474,7 @@ void LLFloaterModelWizard::DecompRequest::completed()
 
 BOOL LLFloaterModelWizard::postBuild()
 {
-	LLView* preview_panel = getChild<LLView>("preview_panel");
+	LLView* preview_panel = getChildView("preview_panel");
 
 	childSetValue("import_scale", (F32) 0.67335826);
 
@@ -439,19 +487,20 @@ BOOL LLFloaterModelWizard::postBuild()
 	getChild<LLUICtrl>("preview_lod_combo")->setCommitCallback(boost::bind(&LLFloaterModelWizard::onPreviewLODCommit, this, _1));
 	getChild<LLUICtrl>("accuracy_slider")->setCommitCallback(boost::bind(&LLFloaterModelWizard::onAccuracyPerformance, this, _2));
 	getChild<LLUICtrl>("upload")->setCommitCallback(boost::bind(&LLFloaterModelWizard::onUpload, this));
-	
+	getChild<LLUICtrl>("physics_slider")->setCommitCallback(boost::bind(&LLFloaterModelWizard::onPhysicsChanged, this));
+
 	LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
 	
 	enable_registrar.add("Next.OnEnable", boost::bind(&LLFloaterModelWizard::onEnableNext, this));
 	enable_registrar.add("Back.OnEnable", boost::bind(&LLFloaterModelWizard::onEnableBack, this));
 
-	
+
 	mPreviewRect = preview_panel->getRect();
 	
 	mModelPreview = new LLModelPreview(512, 512, this);
 	mModelPreview->setPreviewTarget(16.f);
 	mModelPreview->setDetailsCallback(boost::bind(&LLFloaterModelWizard::setDetails, this, _1, _2, _3, _4, _5));
-
+	mModelPreview->setModelLoadedCallback(boost::bind(&LLFloaterModelWizard::modelLoadedCallback, this));
 
 	center();
 
@@ -484,6 +533,18 @@ void LLFloaterModelWizard::setDetails(F32 x, F32 y, F32 z, F32 streaming_cost, F
 	}
 }
 
+void LLFloaterModelWizard::modelLoadedCallback()
+{
+	mLastEnabledState = CHOOSE_FILE;
+	getChild<LLCheckBoxCtrl>("confirm_checkbox")->set(FALSE);
+	updateButtons();
+}
+
+void LLFloaterModelWizard::onPhysicsChanged()
+{
+	mLastEnabledState = PHYSICS;
+	updateButtons();
+}
 
 void LLFloaterModelWizard::onUpload()
 {	
@@ -496,7 +557,6 @@ void LLFloaterModelWizard::onUpload()
 	
 }
 
-
 void LLFloaterModelWizard::onAccuracyPerformance(const LLSD& data)
 {
 	int val = (int) data.asInteger();
@@ -506,6 +566,7 @@ void LLFloaterModelWizard::onAccuracyPerformance(const LLSD& data)
 	mModelPreview->refresh();
 }
 
+
 void LLFloaterModelWizard::onPreviewLODCommit(LLUICtrl* ctrl)
 {
 	if (!mModelPreview)
@@ -557,8 +618,8 @@ void LLFloaterModelWizard::draw()
 		
 		gGL.getTexUnit(0)->bind(mModelPreview);
 		
-		LLView *view = getChild<LLView>(stateNames[mState]+"_panel");
-		LLView* preview_panel = view->getChild<LLView>("preview_panel");
+		LLView *view = getChildView(stateNames[mState]+"_panel");
+		LLView* preview_panel = view->getChildView("preview_panel");
 
 		LLRect rect = preview_panel->getRect();
 		if (rect != mPreviewRect)
diff --git a/indra/newview/llfloatermodelwizard.h b/indra/newview/llfloatermodelwizard.h
index 335f4f4b56727f8799a5a2f0d6aa02e11ad67e42..50e4ab1a96ae48cf29b0a2f3766b8986db282cac 100644
--- a/indra/newview/llfloatermodelwizard.h
+++ b/indra/newview/llfloatermodelwizard.h
@@ -65,7 +65,8 @@ class LLFloaterModelWizard : public LLFloater
 	BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); 
 
 	void setDetails(F32 x, F32 y, F32 z, F32 streaming_cost, F32 physics_cost);
-
+	void modelLoadedCallback();
+	void onPhysicsChanged();
 	void initDecompControls();
 	
 	LLPhysicsDecomp::decomp_params mDecompParams;
@@ -84,7 +85,7 @@ class LLFloaterModelWizard : public LLFloater
 	};
 
 	void setState(int state);
-	void setButtons(int state);
+	void updateButtons();
 	void onClickCancel();
 	void onClickBack();
 	void onClickNext();
@@ -102,6 +103,8 @@ class LLFloaterModelWizard : public LLFloater
 	S32				mLastMouseX;
 	S32				mLastMouseY;
 
+	U32			    mLastEnabledState;
+
 
 };
 
diff --git a/indra/newview/skins/default/textures/model_wizard/check_mark.png b/indra/newview/skins/default/textures/icons/check_mark.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/check_mark.png
rename to indra/newview/skins/default/textures/icons/check_mark.png
diff --git a/indra/newview/skins/default/textures/model_wizard/divider_line.png b/indra/newview/skins/default/textures/model_wizard/divider_line.png
new file mode 100644
index 0000000000000000000000000000000000000000..76c9e687675f26f2ba50465eaeee21146307515a
Binary files /dev/null and b/indra/newview/skins/default/textures/model_wizard/divider_line.png differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index e69c5775f025be75bf494c3426e60a2648bb441b..d351c442d3d06069a97f3854b512fcf939da666a 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -73,7 +73,22 @@ with the same filename but different name
   <texture name="BackButton_Press" file_name="icons/back_arrow_press.png" preload="false" scale.left="22" scale.top="12" scale.right="25" scale.bottom="12" />
 
   <texture name="Blank" file_name="Blank.png" preload="false" />
-
+	
+  <texture name="BreadCrumbBtn_Left_Disabled" file_name="widgets/BreadCrumbBtn_Left_Disabled.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Left_Off" file_name="widgets/BreadCrumbBtn_Left_Off.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Left_Over" file_name="widgets/BreadCrumbBtn_Left_Over.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Left_Press" file_name="widgets/BreadCrumbBtn_Left_Press.png" preload="false"/>
+ 
+  <texture name="BreadCrumbBtn_Middle_Disabled" file_name="widgets/BreadCrumbBtn_Middle_Disabled.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Middle_Off" file_name="widgets/BreadCrumbBtn_Middle_Off.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Middle_Over" file_name="widgets/BreadCrumbBtn_Middle_Over.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Middle_Press" file_name="widgets/BreadCrumbBtn_Middle_Press.png" preload="false"/>
+
+  <texture name="BreadCrumbBtn_Right_Disabled" file_name="widgets/BreadCrumbBtn_Right_Disabled.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Right_Off" file_name="widgets/BreadCrumbBtn_Right_Off.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Right_Over" file_name="widgets/BreadCrumbBtn_Right_Over.png" preload="false"/>
+  <texture name="BreadCrumbBtn_Right_Press" file_name="widgets/BreadCrumbBtn_Right_Press.png" preload="false"/>
+ 
 
   <texture name="BuyArrow_Over" file_name="navbar/BuyArrow_Over.png" preload="true" scale.left="0" scale.top="1" scale.right="0" scale.bottom="0"  />
   <texture name="BuyArrow_Press" file_name="navbar/BuyArrow_Press.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0"  />
@@ -102,6 +117,7 @@ with the same filename but different name
   <texture name="Checkbox_On" file_name="widgets/Checkbox_On.png" preload="true" />
   <texture name="Checkbox_On_Press" file_name="widgets/Checkbox_On_Press.png" preload="true" />
   <texture name="Checkbox_Press" file_name="widgets/Checkbox_Press.png" preload="true" />
+  <texture name="Check_Mark" file_name="icons/check_mark" preload="true" />
 
   <texture name="ComboButton_Disabled" file_name="widgets/ComboButton_Disabled.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
   <texture name="ComboButton_Selected" file_name="widgets/ComboButton_Selected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
diff --git a/indra/newview/skins/default/textures/model_wizard/left_button_disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/left_button_disabled.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
diff --git a/indra/newview/skins/default/textures/model_wizard/left_button_off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/left_button_off.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
diff --git a/indra/newview/skins/default/textures/model_wizard/left_button_over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/left_button_over.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
diff --git a/indra/newview/skins/default/textures/model_wizard/left_button_press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/left_button_press.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
diff --git a/indra/newview/skins/default/textures/model_wizard/middle_button_disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/middle_button_disabled.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
diff --git a/indra/newview/skins/default/textures/model_wizard/middle_button_off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/middle_button_off.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
diff --git a/indra/newview/skins/default/textures/model_wizard/middle_button_over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/middle_button_over.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
diff --git a/indra/newview/skins/default/textures/model_wizard/middle_button_press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/middle_button_press.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
diff --git a/indra/newview/skins/default/textures/model_wizard/right_button_disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/right_button_disabled.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
diff --git a/indra/newview/skins/default/textures/model_wizard/right_button_off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/right_button_off.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
diff --git a/indra/newview/skins/default/textures/model_wizard/right_button_over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/right_button_over.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
diff --git a/indra/newview/skins/default/textures/model_wizard/right_button_press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
similarity index 100%
rename from indra/newview/skins/default/textures/model_wizard/right_button_press.png
rename to indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
diff --git a/indra/newview/skins/default/xui/en/floater_model_wizard.xml b/indra/newview/skins/default/xui/en/floater_model_wizard.xml
index d8492a10bb689c26c6ec745bdef02ef1d4961e86..2377a9e4ef7a1a7fddb98ebbf5ea0d6f4b4fce59 100644
--- a/indra/newview/skins/default/xui/en/floater_model_wizard.xml
+++ b/indra/newview/skins/default/xui/en/floater_model_wizard.xml
@@ -18,12 +18,15 @@
 	 enabled="false"
 	 label="5. Upload"
 	 border="false"
-	 image_unselected="model_wizard/middle_button_off.png"
-	 image_selected="model_wizard/middle_button_press.png"
-	 image_hover_unselected="model_wizard/middle_button_over.png"
-	 image_disabled="model_wizard/middle_button_disabled.png"
-	 image_disabled_selected="model_wizard/middle_button_disabled.png"
-	 width="110"/>
+	 image_unselected="BreadCrumbBtn_Right_Off"
+	 image_selected="BreadCrumbBtn_Right_Press"
+	 image_hover_unselected="BreadCrumbBtn_Right_Over"
+	 image_disabled="BreadCrumbBtn_Right_Disabled"
+	 image_disabled_selected="BreadCrumbBtn_Right_Disabled"
+	 width="110">
+		<button.commit_callback
+		function="Wizard.Upload"/>
+	</button>
 	<button
 	 top="32"
 	 left="310"
@@ -33,12 +36,15 @@
 	 label="4. Review"
 	 enabled="false"
 	 border="false"
-	 image_unselected="model_wizard/middle_button_off.png"
-	 image_selected="model_wizard/middle_button_press.png"
-	 image_hover_unselected="model_wizard/middle_button_over.png"
-	 image_disabled="model_wizard/middle_button_disabled.png"
-	 image_disabled_selected="model_wizard/middle_button_disabled.png"
-	 width="110"/>
+	 image_unselected="BreadCrumbBtn_Middle_Off"
+	 image_selected="BreadCrumbBtn_Middle_Press"
+	 image_hover_unselected="BreadCrumbBtn_Middle_Over"
+	 image_disabled="BreadCrumbBtn_Middle_Disabled"
+	 image_disabled_selected="BreadCrumbBtn_Middle_Disabled"
+	 width="110">
+		<button.commit_callback
+		function="Wizard.Review"/>
+	</button>
 	<button
 	 top="32"
 	 left="210"
@@ -48,12 +54,15 @@
 	 tab_stop="false"
 	 enabled="false"
 	 border="false"
-	 image_unselected="model_wizard/middle_button_off.png"
-	 image_selected="model_wizard/middle_button_press.png"
-	 image_hover_unselected="model_wizard/middle_button_over.png"
-	 image_disabled="model_wizard/middle_button_disabled.png"
-	 image_disabled_selected="model_wizard/middle_button_disabled.png"
-	 width="110"/>
+	 image_unselected="BreadCrumbBtn_Middle_Off"
+	 image_selected="BreadCrumbBtn_Middle_Press"
+	 image_hover_unselected="BreadCrumbBtn_Middle_Over"
+	 image_disabled="BreadCrumbBtn_Middle_Disabled"
+	 image_disabled_selected="BreadCrumbBtn_Middle_Disabled"
+	 width="110">
+		<button.commit_callback
+		function="Wizard.Physics"/>
+	</button>
 	<button
 	 top="32"
 	 left="115"
@@ -62,12 +71,15 @@
 	 tab_stop="false"
 	 height="32"
 	 border="false"
-	 image_unselected="model_wizard/middle_button_off.png"
-	 image_selected="model_wizard/middle_button_press.png"
-	 image_hover_unselected="model_wizard/middle_button_over.png"
-	 image_disabled="model_wizard/middle_button_disabled.png"
-	 image_disabled_selected="model_wizard/middle_button_disabled.png"
-	 width="110"/>
+	 image_unselected="BreadCrumbBtn_Middle_Off"
+	 image_selected="BreadCrumbBtn_Middle_Press"
+	 image_hover_unselected="BreadCrumbBtn_Middle_Over"
+	 image_disabled="BreadCrumbBtn_Middle_Disabled"
+	 image_disabled_selected="BreadCrumbBtn_Middle_Disabled"
+	 width="110">
+		<button.commit_callback
+		function="Wizard.Optimize"/>
+	</button>
 	<button
 	 top="32"
 	 left="15"
@@ -76,12 +88,15 @@
 	 enabled="false"
 	 label="1. Choose File"
 	 height="32"
-	 image_unselected="model_wizard/left_button_off.png"
-	 image_selected="model_wizard/left_button_press.png"
-	 image_hover_unselected="model_wizard/left_button_over.png"
-	 image_disabled="model_wizard/left_button_disabled.png"
-	 image_disabled_selected="model_wizard/left_button_disabled.png"
-	 width="110"/>
+	 image_unselected="BreadCrumbBtn_Left_Off"
+	 image_selected="BreadCrumbBtn_Left_Press"
+	 image_hover_unselected="BreadCrumbBtn_Left_Over"
+	 image_disabled="BreadCrumbBtn_Left_Disabled"
+	 image_disabled_selected="BreadCrumbBtn_Left_Disabled"
+	 width="110">
+		<button.commit_callback
+		function="Wizard.Choose"/>
+	</button>
 	<panel
 		 height="388"
 		 top_pad="0"