fix more about function composition