pass monoid instead of string