monoid stuff and stack overflow crawler