improve FrameWork