Make core.sharedRepository more generic