Generator for Slack

which required making it a class, ugh. It was necessary to specify
a good generator so it'd stop being negative somewhere.
move around for clarity