A sensible framework. Still needs lots of implementation.