finished the framework