A mobile device to cleanse data, comprising: a receiver (311a, 311b) to collect electronic data to cleanse; a processor coupled to the receiver (311a, 311b), the processor configured to receive the data collected by the receiver and further configured to receive an application container including a first application programming interface and a second application programming interface from a server; a memory coupled to the processor, the memory configured to store an application program (309a, 309b), a configuration file and the application container including the first application programming interface and the second application programming interface; wherein the configuration file comprises validation rules and data structures and the application container hosts and supports the usage of several application configurations; wherein the first interface provides programmatic access to an instantiation module, the instantiation module is used by the application program (309a, 309b) to build in memory objects required by the first interface, the application program (309a, 309b) being operable to use discovery functionality of the instantiation module to learn a data structure of collected data according to a configuration provided by the first interface; wherein the second interface provides programmatic access to a configuration manager module, the configuration manager module configured to update the data structures and the validation rules of the configuration file, wherein the configuration file is used by the instantiation module to process data, and wherein the source code of the application program is unchanged, wherein the first interface and the second interface are callable from the application program (309a, 309b) to cleanse the data collected by the receiver; whereby cleansing of data includes the identification and correction or removal of identified data. a receiver (311a, 311b) to collect electronic data to cleanse; a processor coupled to the receiver (311a, 311b), the processor configured to receive the data collected by the receiver and further configured to receive an application container including a first application programming interface and a second application programming interface from a server; a memory coupled to the processor, the memory configured to store an application program (309a, 309b), a configuration file and the application container including the first application programming interface and the second application programming interface; wherein the configuration file comprises validation rules and data structures and the application container hosts and supports the usage of several application configurations; wherein the first interface provides programmatic access to an instantiation module, the instantiation module is used by the application program (309a, 309b) to build in memory objects required by the first interface, the application program (309a, 309b) being operable to use discovery functionality of the instantiation module to learn a data structure of collected data according to a configuration provided by the first interface; wherein the second interface provides programmatic access to a configuration manager module, the configuration manager module configured to update the data structures and the validation rules of the configuration file, wherein the configuration file is used by the instantiation module to process data, and wherein the source code of the application program is unchanged, wherein the first interface and the second interface are callable from the application program (309a, 309b) to cleanse the data collected by the receiver; whereby cleansing of data includes the identification and correction or removal of identified data. wherein the first interface provides programmatic access to an instantiation module, the instantiation module is used by the application program (309a, 309b) to build in memory objects required by the first interface, the application program (309a, 309b) being operable to use discovery functionality of the instantiation module to learn a data structure of collected data according to a configuration provided by the first interface; wherein the second interface provides programmatic access to a configuration manager module, the configuration manager module configured to update the data structures and the validation rules of the configuration file, wherein the configuration file is used by the instantiation module to process data, and wherein the source code of the application program is unchanged, wherein the first interface and the second interface are callable from the application program (309a, 309b) to cleanse the data collected by the receiver; whereby cleansing of data includes the identification and correction or removal of identified data.