1. A method of rolling back software in an automatic teller machine wherein the automatic teller machine comprises at least one computer and at least one software program running on the at least one computer, the at least one software program comprising at least one virtual environment, the method comprising: detecting the failure of at least software component of the software program running on the at least one computer and in response to the failure of the one software component, restoring a previous version of the software program restoring the previous version of the software program comprising maintaining operation of the software program by switching the computer to run on a stored previous version of the virtual environment.