setting up the basic framework