added treatment for commutative monoids, and start of the example we want