diff --git a/AmpScan/AmpScanGUI.py b/AmpScan/AmpScanGUI.py
index ee983356fd90d1d7d964942f44beb49dfcb0a11c..3035f0747c3cb311b7d5e41447d60d060e940af0 100644
--- a/AmpScan/AmpScanGUI.py
+++ b/AmpScan/AmpScanGUI.py
@@ -1,5 +1,6 @@
 import sys
 import numpy as np
+from vtk.util import numpy_support
 from .core import AmpObject
 from .registration import registration
 from .ampVis import qtVtkWindow
@@ -79,18 +80,22 @@ class AmpScanGUI(QMainWindow):
         self.renWin.setScalarBar(self.RegObj.actor)
     
     def analyse(self):
-        self.RegObj.plot_slices()
+        #self.RegObj.plot_slices()
+        self.AmpObj.rotate([50, 50, 10], ang='deg')
+        self.vtkWidget.render()
+        #self.AmpObj.vert[0,0] = 1
+        #self.AmpObj._v = numpy_support.numpy_to_vtk(self.AmpObj.vert)
 
     def chooseFE(self):
         FEname = QFileDialog.getOpenFileName(self, 'Open file',
                                             filter="FE results (*.npy)")
         self.renWin.setnumViewports(1)
-        self.AmpObj.addFE([FEname[0],])
-        self.AmpObj.lp_smooth('FE', n=1)
-        self.AmpObj.addActor(stype='FE', CMap=self.AmpObj.CMap02P, bands=5)
-        self.AmpObj.actors['FE'].setScalarRange(smin=0.0, smax=50)
-        self.renWin.renderActors(self.AmpObj.actors, ['FE',], shading=True)
-        self.renWin.setScalarBar(self.AmpObj.actors['FE'])
+        self.FE = AmpObject([FEname[0],], stype='FE')
+        self.AmpObj.lp_smooth()
+        self.AmpObj.addActor(CMap=self.AmpObj.CMap02P, bands=5)
+        self.AmpObj.actor.setScalarRange(smin=0.0, smax=50)
+        self.renWin.renderActors(self.FE.actor, shading=True)
+        self.renWin.setScalarBar(self.FE.actor)
         
     def choosePress(self):
         vName = QFileDialog.getOpenFileName(self, 'Open file',
diff --git a/AmpScan/ampVis.py b/AmpScan/ampVis.py
index 0cada59e539cab9dd5870e5f2005ff5c8302d936..8879efda5e91104b7bde964d043d2796d22098c0 100644
--- a/AmpScan/ampVis.py
+++ b/AmpScan/ampVis.py
@@ -233,14 +233,16 @@ class visMixin(object):
         
         """
         self.actor = self.ampActor()
+        #self._v = numpy_support.numpy_to_vtk(self.vert, deep=0)
         self.actor.setVert(self.vert)
         self.actor.setFaces(self.faces)
+        #self.actor.setNorm()
         if self.values is not None:
             self.actor.setValues(self.values)
             self.actor.setCMap(CMap, bands)
             self.actor.setScalarRange(sRange)
             self.actor.Mapper.SetLookupTable(self.actor.lut)
-        self.actor.setNorm()
+        
 
     class ampActor(vtk.vtkActor):
         """
@@ -253,7 +255,6 @@ class visMixin(object):
             self.mesh = vtk.vtkPolyData()
             self.points = vtk.vtkPoints()
             self.polys = vtk.vtkCellArray()
-            self.norm = vtk.vtkPolyDataNormals()
             self.Mapper = vtk.vtkPolyDataMapper()
             #self.setVert(data['vert'])
             #self.setFaces(data['faces'])
@@ -272,6 +273,7 @@ class visMixin(object):
         def setVert(self, vert, deep=0):
             self._v = numpy_support.numpy_to_vtk(vert, deep=deep)
             self.points.SetData(self._v)
+#            self.points.SetData(vert)
             self.mesh.SetPoints(self.points)
             
         def setFaces(self, faces, deep=0):
@@ -281,14 +283,21 @@ class visMixin(object):
             self.polys.SetCells(len(faces), self._f)
             self.mesh.SetPolys(self.polys)
         
-        def setNorm(self, split=False):
+        def setNorm(self, split=False, norm=None, deep=0):
             """
             Check if deepcopy is neededin this function
             """
-            self.norm.SetInputData(self.mesh)
-            self.norm.SetFeatureAngle(30.0)
-            self.norm.Update()
-            self.mesh.DeepCopy(self.norm.GetOutput())
+            if norm is not None:
+                self._n = numpy_support.numpy_to_vtk(norm, deep=deep)
+                self.mesh.GetPointData().SetNormals(self._n)
+            else:
+                self.norm = vtk.vtkPolyDataNormals()
+                self.norm.ComputePointNormalsOn()
+                self.norm.ComputeCellNormalsOff()
+                self.norm.SetFeatureAngle(30.0)
+                self.norm.SetInputData(self.mesh)
+                self.norm.Update()
+                self.mesh.DeepCopy(self.norm.GetOutput())
             self.GetProperty().SetInterpolationToGouraud()
 
         def setValues(self, values, deep=0):
diff --git a/AmpScan/core.py b/AmpScan/core.py
index 72b9c312e22342a6b4d039bfaf2921a3884da8d9..517a9c5c42f1ec283dec7cee5b6f070bc8c0f99f 100644
--- a/AmpScan/core.py
+++ b/AmpScan/core.py
@@ -116,7 +116,7 @@ class AmpObject(trimMixin, smoothMixin, analyseMixin,
         self.calcStruct()
         
     def calcStruct(self, norm=True, edges=True, 
-                   edgeFaces=True, faceEdges=True, vNorm=True):
+                   edgeFaces=True, faceEdges=True, vNorm=False):
         if norm is True:
             self.calcNorm()
         if edges is True:
@@ -196,6 +196,7 @@ class AmpObject(trimMixin, smoothMixin, analyseMixin,
     def calcVNorm(self):
         """
         Function to compute the vertex normals
+        Not required for the AmpActor but may be needed for ICP
         """
         f = self.faces.flatten()
         o_idx = f.argsort()
@@ -242,7 +243,7 @@ class AmpObject(trimMixin, smoothMixin, analyseMixin,
         trans: array-like
             1x3 array of the tranlation in [x, y, z]
         """
-        self.vert += trans
+        self.vert[:] += trans
 
     def centre(self):
         """
@@ -250,9 +251,9 @@ class AmpObject(trimMixin, smoothMixin, analyseMixin,
         """
         self.translate(-self.vert.mean(axis=0))
     
-    def rotate(self, rot):
-        R = rotMatrix(rot)
-        self.vert = np.dot(self.vert, np.transpose(R))
+    def rotate(self, rot, ang='rad'):
+        R = rotMatrix(rot, ang)
+        self.vert[:, :] = np.dot(self.vert, np.transpose(R))
 
     def man_rot(self, rot):
         """
diff --git a/AmpScan/smooth.py b/AmpScan/smooth.py
index d80bf9d5d76790e706ec04936233368719f22e0f..f8b8ea6c46505bdfcfbb7d051ddc5fa0aa47bbd5 100644
--- a/AmpScan/smooth.py
+++ b/AmpScan/smooth.py
@@ -38,6 +38,6 @@ class smoothMixin(object):
             # Get average of each array 
             vert = [vert.mean(axis=0) for vert in spl]
             # Write to the AmpObj
-            self.vert = np.array(vert)
+            self.vert[:, :] = np.array(vert)
             
             
\ No newline at end of file