UPD: moved to a context based framework (the plugin is mostly the context)
UPD: moved some methods from the provider to the context.
UPD: reorganized constants.
UPD: changes based on context concept.
UPD: moved the helper in ContextUtils with lazy loading
UPD: ContextUI for interacting with the GUI
UPD: moved input also to ContextUI