general framework.