diff --git a/GUIs/AmpScanGUI.py b/GUIs/AmpScanGUI.py
index 0c6d06c798acbfd30a9b459c7d12e4fc4ddffea1..db9610a845798515752084c44bcb40f30859ec6c 100644
--- a/GUIs/AmpScanGUI.py
+++ b/GUIs/AmpScanGUI.py
@@ -9,10 +9,11 @@ from AmpScan.pressSens import pressSense
 from PyQt5.QtCore import QPoint, QSize, Qt, QTimer, QRect, pyqtSignal
 from PyQt5.QtGui import (QColor, QFontMetrics, QImage, QPainter, QIcon,
                          QOpenGLVersionProfile)
-from PyQt5.QtWidgets import (QAction, QApplication, QGridLayout,
-                             QMainWindow, QMessageBox, QComboBox,
+from PyQt5.QtWidgets import (QAction, QApplication, QGridLayout, QHBoxLayout,
+                             QMainWindow, QMessageBox, QComboBox, QButtonGroup,
                              QOpenGLWidget, QFileDialog,QLabel,QPushButton,
-                             QSlider, QWidget, QTableWidget, QTableWidgetItem)
+                             QSlider, QWidget, QTableWidget, QTableWidgetItem,
+                             QAbstractButton)
 
         
 class AmpScanGUI(QMainWindow):
@@ -102,21 +103,61 @@ class AmpScanGUI(QMainWindow):
         self.alCont = AlignControls(self.filesDrop, self)
         self.alCont.show()
         self.alCont.icp.clicked.connect(self.runICP)
-#        self.renWin.setnumViewports(2)
-#        self.renWin.setView(view=[-1, 0, 0], viewport=1)
-#        self.renWin.setProjection(True, 0)
-#        self.renWin.setProjection(True, 1)
-##        self.renWin.render(self.AmpObj.actors, dispActors=['limb',])
-##        self.renWin.render(self.AmpObj.actors, dispActors=['socket',],
-##                              viewport=1)
-#        self.renWin.renderActors([self.AmpObj.actor, self.socket.actor],
-#                                 viewport=0)
-#        self.renWin.renderActors([self.AmpObj.actor, self.socket.actor],
-#                                 viewport=1)
-#        self.AmpObj.actor.setColor([1.0, 0.0, 0.0])
-#        self.AmpObj.actor.setOpacity(0.5)
-#        self.socket.actor.setColor([0.0, 0.0, 1.0])
-#        self.socket.actor.setOpacity(0.5)
+        self.alCont.xrotButton.buttonClicked[QAbstractButton].connect(self.rotatex)
+        self.alCont.yrotButton.buttonClicked[QAbstractButton].connect(self.rotatey)
+        self.alCont.zrotButton.buttonClicked[QAbstractButton].connect(self.rotatez)
+        self.alCont.xtraButton.buttonClicked[QAbstractButton].connect(self.transx)
+        self.alCont.ytraButton.buttonClicked[QAbstractButton].connect(self.transy)
+        self.alCont.ztraButton.buttonClicked[QAbstractButton].connect(self.transz)
+        
+    def rotatex(self, button):
+        moving = str(self.alCont.moving.currentText())
+        ang = [float(button.text()), 0, 0]
+        self.files[moving].rotateAng(ang, 'deg')
+        self.files[moving].actor.setVert(self.files[moving].vert)
+        self.renWin.Render()
+#        print('rotate x by %.1f' % ang)
+
+    def rotatey(self, button):
+        moving = str(self.alCont.moving.currentText())
+        ang = [0, float(button.text()), 0]
+        self.files[moving].rotateAng(ang, 'deg')
+        self.files[moving].actor.setVert(self.files[moving].vert)
+        self.renWin.Render()
+#        print('rotate y by %.1f' % ang)
+
+    def rotatez(self, button):
+        moving = str(self.alCont.moving.currentText())
+        ang = [0, 0, float(button.text())]
+        self.files[moving].rotateAng(ang, 'deg')
+        self.files[moving].actor.setVert(self.files[moving].vert)
+        self.renWin.Render()
+
+    def transx(self, button):
+        moving = str(self.alCont.moving.currentText())
+        ang = [float(button.text()), 0, 0]
+        self.files[moving].translate(ang)
+        self.files[moving].actor.setVert(self.files[moving].vert)
+        self.renWin.Render()
+#        print('rotate x by %.1f' % ang)
+
+    def transy(self, button):
+        moving = str(self.alCont.moving.currentText())
+        ang = [0, float(button.text()), 0]
+        self.files[moving].translate(ang)
+        self.files[moving].actor.setVert(self.files[moving].vert)
+        self.renWin.Render()
+#        print('rotate y by %.1f' % ang)
+
+    def transz(self, button):
+        moving = str(self.alCont.moving.currentText())
+        ang = [0, 0, float(button.text())]
+        self.files[moving].translate(ang)
+        self.files[moving].actor.setVert(self.files[moving].vert)
+        self.renWin.Render()
+#        print('rotate z by %.1f' % ang)
+#        self.files[moving].rotateAng(ang, 'deg')
+
     
     def runICP(self):
         
@@ -172,12 +213,7 @@ class AmpScanGUI(QMainWindow):
         self.regCont.show()
         self.regCont.reg.clicked.connect(self.runRegistration)
         
-#        self.renWin.setnumViewports(1)
-#        self.renWin.setProjection()
-#        self.RegObj = registration(self.socket, self.AmpObj)
-#        self.RegObj.addActor(CMap=self.AmpObj.CMapN2P)
-#        self.renWin.renderActors([self.RegObj.actor,])
-#        self.renWin.setScalarBar(self.RegObj.actor)
+
     
     def analyse(self):
         """
@@ -348,6 +384,28 @@ class AlignControls(QMainWindow):
         self.layout.addWidget(self.static, 0, 1)
         self.layout.addWidget(self.moving, 1, 1)
         self.layout.addWidget(self.icp, 2, 0, 1, -1)
+        rots = ['x', 'y', 'z']
+        vals = ['-5', '-0.5', '+0.5', '+5']
+        for i, r in enumerate(rots):
+            setattr(self, r + 'rotBox', QHBoxLayout())
+            setattr(self, r + 'rotButton', QButtonGroup())
+            lab = QLabel(r + ' rotation')
+            getattr(self, r + 'rotBox').addWidget(lab)
+            for v in vals:
+                button = QPushButton(v)
+                getattr(self, r + 'rotBox').addWidget(button)
+                getattr(self, r + 'rotButton').addButton(button)
+            self.layout.addLayout(getattr(self, r + 'rotBox'), i+3, 0, 1, -1)
+        for i, r in enumerate(rots):
+            setattr(self, r + 'traBox', QHBoxLayout())
+            setattr(self, r + 'traButton', QButtonGroup())
+            lab = QLabel(r + ' translation')
+            getattr(self, r + 'traBox').addWidget(lab)
+            for v in vals:
+                button = QPushButton(v)
+                getattr(self, r + 'traBox').addWidget(button)
+                getattr(self, r + 'traButton').addButton(button)
+            self.layout.addLayout(getattr(self, r + 'traBox'), i+6, 0, 1, -1)
         self.main.setLayout(self.layout)
         self.setWindowTitle("Alignment Manager")
         self.getNames()
@@ -388,7 +446,7 @@ class RegistrationControls(QMainWindow):
         self.layout.addWidget(self.target, 1, 1)
         self.layout.addWidget(self.reg, 2, 0, 1, -1)
         self.main.setLayout(self.layout)
-        self.setWindowTitle("Alignment Manager")
+        self.setWindowTitle("Registration Manager")
         self.getNames()
     
     def getNames(self):
@@ -402,6 +460,7 @@ class RegistrationControls(QMainWindow):
 
 if __name__ == "__main__":
     app = QApplication(sys.argv)
+#    mainWin = AlignControls([''])
     mainWin = AmpScanGUI()
     mainWin.show()
     sys.exit(app.exec_())
\ No newline at end of file