abstracting the framework.