set up the framework