A method of operation of a client computer (10A-10M), whereby an application may be obtained from a server (14A-14N) for use with a host program (21-25) on the client computer, the method comprising: determining, by the client computer, functions provided by the host program on the client computer; sending (306; 412) an application search request and a list of the determined functions to the server; receiving , from the server, a list of applications available from the server which are operable, at least in a basic mode of operation, with one or more of the determined functions; presenting , by the client computer, the list of applications to a user; receiving , from the user, a selection of an application from the list; sending (310; 445) the selection to the server; receiving (312; 450), from the server, the selected application and a manifest for the selected application, the manifest describing how the selected application integrates with the host program and containing at least a list of functions required for the selected application to operate in the basic mode of operation and a list of one or more optional functions for the selected application to operate in an enhanced mode of operation; once the manifest has been received and stored on the client computer, then at a later time, when the received application is to be activated, calling and activating , using the host program, the received application in the basic mode of operation to provide desired features using one or more of the functions provided by the host program; and if the host program provides one or more of the optional functions listed in the manifest, operating the application in the enhanced mode of operation to provide one or more optional features. determining, by the client computer, functions provided by the host program on the client computer; sending (306; 412) an application search request and a list of the determined functions to the server; receiving , from the server, a list of applications available from the server which are operable, at least in a basic mode of operation, with one or more of the determined functions; presenting , by the client computer, the list of applications to a user; receiving , from the user, a selection of an application from the list; sending (310; 445) the selection to the server; receiving (312; 450), from the server, the selected application and a manifest for the selected application, the manifest describing how the selected application integrates with the host program and containing at least a list of functions required for the selected application to operate in the basic mode of operation and a list of one or more optional functions for the selected application to operate in an enhanced mode of operation; once the manifest has been received and stored on the client computer, then at a later time, when the received application is to be activated, calling and activating , using the host program, the received application in the basic mode of operation to provide desired features using one or more of the functions provided by the host program; and if the host program provides one or more of the optional functions listed in the manifest, operating the application in the enhanced mode of operation to provide one or more optional features. <EOS>