The basic framework