setup the basic framework