fix function composition