Added shared cache and abstracted .