implemented MonoidOps