Further decoupling and generalizing files