implemented some basic monoids.