A basic framework for a