Refactored media module and it's use among modules. Refactored provider plugin architecture