The general framework