Add compose()