setting up the framework