write the framework