added multiplicative composition