coarsen framework, but needs rethinking