A method for recalling a state in a stateless application, wherein for an application state at a particular moment arrived at after a sequence of a number of other states, the application is unaware of the prior existing states, and wherein the application comprises an interface logic and a transactional logic for processing data, said method comprising: implementing a software upgrade to the application, wherein the upgrade interacts with the application via the interface logic; providing, with the software upgrade, an intermediary module and a user interface via which a user can input data and at least one of a redo command and an undo command; providing, with the software upgrade, a command stack which is divided into two stacks, an undo stack and a redo stack, wherein the undo stack comprises a set of commands which includes a first command, 1, through a command, n, of a current program state, wherein for each action that the intermediary module determines is to be performed by the application in response to a user interaction with the user interface, the software upgrade stores at least one new command in the undo stack and provides the at least one command to the interface logic of the application, so that the transactional logic of the application executes the required transaction, the stored at least one command including the input data required for the execution of the at least one command by the application; and in response to an undo command to undo an action received from the user at the current program state, removing the latest at least one command corresponding to the action, n, of the sequence of execution from the undo stack and place it in the redo stack and serially running through the undo stack from the first command, 1, at the bottom of the undo stack to a command, n-1, at the top of the undo stack. implementing a software upgrade to the application, wherein the upgrade interacts with the application via the interface logic; providing, with the software upgrade, an intermediary module and a user interface via which a user can input data and at least one of a redo command and an undo command; providing, with the software upgrade, a command stack which is divided into two stacks, an undo stack and a redo stack, wherein the undo stack comprises a set of commands which includes a first command, 1, through a command, n, of a current program state, wherein for each action that the intermediary module determines is to be performed by the application in response to a user interaction with the user interface, the software upgrade stores at least one new command in the undo stack and provides the at least one command to the interface logic of the application, so that the transactional logic of the application executes the required transaction, the stored at least one command including the input data required for the execution of the at least one command by the application; and in response to an undo command to undo an action received from the user at the current program state, removing the latest at least one command corresponding to the action, n, of the sequence of execution from the undo stack and place it in the redo stack and serially running through the undo stack from the first command, 1, at the bottom of the undo stack to a command, n-1, at the top of the undo stack.