Text this: Monoids and semigroups with applications :