Move module loading and context interfaces/classes in shared component