Abstract: Terminal devices for a wireless communication network are manufactured and distributed with predetermined communication capabilities and a minimal operation capability. Each unit includes a substantial memory for plug-in feature programming, which initially is empty. A terminal user selects a desired feature or set of features and contacts a service provider. The provider's equipment downloads software programming corresponding to the desired feature into the memory of the terminal device. The software takes the form of a plug-in module, written to the program interface specification of the core software of the terminal device. When loaded into memory and interfaced through the core software, the module allows the terminal device to implement the desired feature. Features can be sold in predefined packages or individually. Features can be added, upgraded or replaced at any time by downloading new feature modules into the memory.