A method of generating a user interface for presentation to a user, the method comprising: executing a first application computer program to provide a user interface; executing agent computer program code to modify said user interface during execution of said first application computer program, wherein modifying said user interface comprises: inserting modification computer program code within a memory space associated with said application computer program code, locating first computer program code within said memory space, and modifying said first computer program code so as to redirect control to said modification computer program code, wherein said modification computer program code is configured to generate a modified user interface including at least one of disabling, making invisible parts of the user interface, changing operation of user interface elements, combination of user interfaces provided by different application computer programs and rearrangement of user interface elements to meet particular usability requirements; wherein said first application computer program is executed on a server, the server is in communication with a client remote from the server, and said modified user interface is provided for presentation at said client. executing a first application computer program to provide a user interface; executing agent computer program code to modify said user interface during execution of said first application computer program, wherein modifying said user interface comprises: inserting modification computer program code within a memory space associated with said application computer program code, locating first computer program code within said memory space, and modifying said first computer program code so as to redirect control to said modification computer program code, wherein said modification computer program code is configured to generate a modified user interface including at least one of disabling, making invisible parts of the user interface, changing operation of user interface elements, combination of user interfaces provided by different application computer programs and rearrangement of user interface elements to meet particular usability requirements; wherein said first application computer program is executed on a server, the server is in communication with a client remote from the server, and said modified user interface is provided for presentation at said client. inserting modification computer program code within a memory space associated with said application computer program code, locating first computer program code within said memory space, and modifying said first computer program code so as to redirect control to said modification computer program code, wherein said modification computer program code is configured to generate a modified user interface including at least one of disabling, making invisible parts of the user interface, changing operation of user interface elements, combination of user interfaces provided by different application computer programs and rearrangement of user interface elements to meet particular usability requirements; wherein said first application computer program is executed on a server, the server is in communication with a client remote from the server, and said modified user interface is provided for presentation at said client.