Problem that we are trying to solve

user?

Suggestion
Use OSGI to provide modularity and clean interfaces at runtime.
OSGI also handles versioning.

Approach
?