change the framework

reduce the interfaces