adding monoidal functions