initially changes functions definitions
fix more function compo