diff --git a/AmpScan/pca.py b/AmpScan/pca.py
index 73cdb302a2c9a887838d09c7d1b647a9bcc0d3b2..3ee7d5ff74ae19e5ea7f5e81db67cf98bca14340 100644
--- a/AmpScan/pca.py
+++ b/AmpScan/pca.py
@@ -35,11 +35,11 @@ class pca(object):
         for s in self.shapes:
             s.planarTrim(height)
         
-    def register(self):
+    def register(self, scale=None):
         r"""
         Function to register all the shapes to a baseline
         """
-        self.registered = [registration(self.baseline, t) for t in self.shapes]
+        self.registered = [registration(self.baseline, t, fixBrim=True, steps=10).reg for t in self.shapes]
         self.X = np.array([r.vert.flatten() for r in self.registered]).T
         
     def pca(self):
diff --git a/AmpScan/registration.py b/AmpScan/registration.py
index 764662668c73256bb0651bd36c8d262fa372ad77..b89fc6a8effa41f8727ff814d8a3b1159f3850ab 100644
--- a/AmpScan/registration.py
+++ b/AmpScan/registration.py
@@ -47,7 +47,8 @@ class registration(object):
             getattr(self, method)(*args, **kwargs)
         
         
-    def point2plane(self, steps = 1, neigh = 10, inside = True, subset = None, smooth=1, fixBrim=False):
+    def point2plane(self, steps = 1, neigh = 10, inside = True, subset = None, 
+                    scale=False, smooth=1, fixBrim=False):
         r"""
         Point to Plane method for registration between the two meshes 
         
@@ -80,6 +81,13 @@ class registration(object):
                          [self.b.vert, self.b.faces, self.b.values]))
         regData = copy.deepcopy(bData)
         self.reg = AmpObject(regData, stype='reg')
+        if scale is not None:
+            tmin = self.t.vert.min(axis=0)[2]
+            rmin = self.reg.vert.min(axis=0)[2]
+            SF = 1 - ((tmin-scale)/(rmin-scale))
+            logic = self.reg.vert[:, 2] < scale
+            d = (self.reg.vert[logic, 2] - scale) * SF
+            self.reg.vert[logic, 2] += d
         normals = np.cross(self.t.vert[self.t.faces[:,1]] -
                          self.t.vert[self.t.faces[:,0]],
                          self.t.vert[self.t.faces[:,2]] -
diff --git a/GUIs/AmpScanGUI.py b/GUIs/AmpScanGUI.py
index 2ed12338c98b54a0b34cb57c1c5f968a60568baf..4ff33f64f4c2845c4bd52750c3e029c8225922ef 100644
--- a/GUIs/AmpScanGUI.py
+++ b/GUIs/AmpScanGUI.py
@@ -143,7 +143,6 @@ class AmpScanGUI(QMainWindow):
         ang = float(button.text())
         idx = [0, 0, 1]
         self.files[moving].rotateAng([ang*i for i in idx], 'deg')
-        print(self.files[moving].actor.GetOrigin())
         self.files[moving].tform.RotateZ(ang)
         self.renWin.Render()
 
@@ -188,8 +187,8 @@ class AmpScanGUI(QMainWindow):
                    maxiter=10, method='linPoint2Plane').m
         al.tform = vtk.vtkTransform()
         al.tform.PostMultiply()
-        al.actor.SetUserTransform(al.tform)
         al.addActor()
+        al.actor.SetUserTransform(al.tform)
         alName = moving + '_al'
         self.files[alName] = al
         self.filesDrop.append(alName)