DRY up bot factory