+# Where to store data
+DATA_DIR = os.environ.get('MATRIX_DATA_DIR', '')
+DB_FILE = os.environ.get('CHORE_DB_FILE', 'chore.db')
+kwargs['db_file'] = os.path.join(DATA_DIR, DB_FILE)
+kwargs['bot_prefix'] = os.environ.get('CHORE_BOT_PREFIX', '!chore')
+chore_bot = ChoreBot(**kwargs)
+
+
+# Re-use chore_bot's inner bot for goal and shopping
+bot = chore_bot.bot
+
+
+DB_FILE = os.environ.get('GOAL_DB_FILE', 'goal.db')
+kwargs['db_file'] = os.path.join(DATA_DIR, DB_FILE)
+kwargs['bot_prefix'] = os.environ.get('GOAL_BOT_PREFIX', '!goal')
+goal_bot = GoalBot(**kwargs)
+goal_bot.bot = bot
+
+
+@bot.listener.on_message_event
+async def do_chore_stuff(room, message):
+ await chore_bot.handle_message(room, message)