Currently the ApplicationData object is a refptr which means that it can be stored everywhere, but actually this object is closely related to the Application's lifecycle. It represents a 'installed' application, thus it should not exist after it's uninstalled. There should be only one place where all the installed applications are managed, probably in the application_service.
The ApplicationData will be generated from the storage, as a non-copyable object. 
@pozdnyakov we need to rethink it.