1. A method of exchanging data between software components on a portable device, comprising: loading a first software component using the portable device; retrieving data from a service provider for the first software component, at least a portion of the retrieved data being common to a second software component; initiating a call by the first software component to load the second software component; loading the second software component; and exchanging data between the second software component and the first software component.