no need to extend Monoid, I think.