diff --git a/js/fea/DmaCell.js b/js/fea/DmaCell.js
index 09d4e388b9289b4231b49af7c550f092d02c63cc..e44345cd827d9810ffd3eca7b4dc69b91d4c5fd8 100644
--- a/js/fea/DmaCell.js
+++ b/js/fea/DmaCell.js
@@ -100,7 +100,11 @@ DMACell.prototype._setMeshPosition = function(mesh, position){
 
 DMACell.prototype.moveTo = function(position, axis){//used for stock simulations
     this.cellMesh.position[axis] = position;
-    //todo update parts too
+    if (dmaGlobals.appState.get("cellMode") == "part"){
+        _.each(this.parts, function(part){
+            if (part) part.moveTo(position, axis);
+        });
+    }
 };
 
 DMACell.prototype.getType = function(){
diff --git a/js/fea/DmaPart.js b/js/fea/DmaPart.js
index 8d3f7665d6ae0e6c6b84a37fe438b3003d0b8006..b584774d5b3186077481f1a607672e9f34245bf6 100644
--- a/js/fea/DmaPart.js
+++ b/js/fea/DmaPart.js
@@ -36,6 +36,10 @@ var partMaterial = new THREE.MeshLambertMaterial({ color:0xffffff, shading: THRE
         mesh.position.z = position.z;
     };
 
+    DMAPart.prototype.moveTo = function(position, axis){//used for stock simulation
+        this.mesh.position[axis] = position;
+    };
+
     DMAPart.prototype.setVisibility = function(visibility){
         if (visibility) this._show();
         else this._hide();