add usrop + and function composition