The loaded implementation classes are instantiated on the repository. From the objects of the implementation classes the profiles are retrieved by invoking getProfile(). The array of profiles is serialized to a byte stream and sent to the context awareness.
The instantiation of the implementation class on the repository is necessary in order to get the profiles out of the implementation class. In the prototype implementation all instances of implementation classes are held on the repository. If there are a lot of implementation classes, this implementation may lead to high resource consumption. An alternative would be to instantiate the implementation classes for retrieving the profiles once and to drop instances of implementation classes and to keep only the profiles in memory.