Improve documentation; Add Monoid