Moved to its own class file
Made the ORDER constants a bit more symmetric + made the class final
Updated doc for the monoid case; TODO describe the monoid properties