more refactoring. trying to isolate distinct parts of the bot into their own modules.