какая должна быть структура у тг бота? нужно токен вынести в отдельный файл и разделить на файлы подсчета ИМТ, определения времени и т д

import telebot
import pytz
from datetime import datetime
# from telebot import types
# import config

TOKEN = ''

bot = telebot.TeleBot(TOKEN)
img = open('D:\Main\Code\selfbot\cat.MP4', 'rb')

@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, "Привет, я — Плазматик! Напиши мне 'ь'.")

@bot.message_handler(commands=['bmi'])
def calculate_bmi(message):
    try:
        height, weight = map(float, message.text.split()[1:])
        bmi = weight / (height / 100) ** 2
        if bmi < 15:
            category = "Палка"
        elif bmi < 18:
            category = "Недовес"
        elif bmi < 25:
            category = "Норма"
        elif bmi < 29:
            category = "Перевес"
        else:
            category = "Ожирение"
        bot.send_message(message.chat.id, f"Индекс массы тела: {bmi:.2f} — {category}")
    except ValueError:
        bot.send_message(message.chat.id, "/bmi РОСТ ВЕС")

@bot.message_handler(content_types=['text'])
def handle_text(message):
    if message.text == "ь":
        bot.send_message(message.chat.id, "еь")
    elif message.text == "/help":
        bot.send_message(message.from_user.id, "Напиши «ь»")
    elif message.text == "ь.":
        bot.send_message(message.chat.id, "еь.")
    elif message.text == "ъ":
        bot.send_message(message.chat.id, "еъ")
    elif message.text == "вч":
        bot.send_video(message.chat.id, img, None, 'Text')
        img.close()
    elif message.text.lower() == '/time':
        send_time(message)
#    else:
#        bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")

def send_time(message):
    tz_spb = pytz.timezone('Europe/Moscow')
    tz_amsterdam = pytz.timezone('Europe/Amsterdam')
    tz_seoul = pytz.timezone('Asia/Seoul') 
    tz_ekb = pytz.timezone('Asia/Yekaterinburg') 
    tz_paris = pytz.timezone('Europe/Paris')
    tz_frankfurt = pytz.timezone('Europe/Berlin')
    tz_vladivostok = pytz.timezone('Asia/Vladivostok')
    tz_sofia = pytz.timezone('Europe/Sofia')
    tz_sf = pytz.timezone('America/Los_Angeles')
    tz_mexico_city = pytz.timezone('America/Mexico_City')
    tz_telaviv = pytz.timezone('Asia/Tel_Aviv')
    tz_tolyatti = pytz.timezone('Europe/Samara')

    time_spb = datetime.now(tz_spb).strftime("%H:%M")
    time_amsterdam = datetime.now(tz_amsterdam).strftime("%H:%M")
    time_seoul = datetime.now(tz_seoul).strftime("%H:%M")
    time_ekb = datetime.now(tz_ekb).strftime("%H:%M")
    time_paris = datetime.now(tz_paris).strftime("%H:%M")
    time_frankfurt = datetime.now(tz_frankfurt).strftime("%H:%M")
    time_vladivostok = datetime.now(tz_vladivostok).strftime("%H:%M")
    time_sofia = datetime.now(tz_sofia).strftime("%H:%M")
    time_sf = datetime.now(tz_sf).strftime("%H:%M")
    time_mexico_city = datetime.now(tz_mexico_city).strftime("%H:%M")
    time_telaviv = datetime.now(tz_telaviv).strftime("%H:%M")
    time_tolyatti = datetime.now(tz_tolyatti).strftime("%H:%M")

    bot.send_message(message.chat.id,  
                    f"🇷🇺 UTC+3: {time_spb}\n"
                    f"🇷🇺 UTC+5: {time_ekb}\n"
                    f"🇷🇺 Владивосток: {time_vladivostok}\n\n"
                    f"🇳🇱 Амстердам: {time_amsterdam}\n\n"  
                    f"🇫🇷 Париж: {time_paris}\n\n" 
                    f"🇩🇪 Франкфурт: {time_frankfurt}\n\n"
                    f"🇰🇷 Хвасонг: {time_seoul}\n\n"
                    f"🇺🇸 Сан-Франциско: {time_sf}\n\n")

bot.polling(none_stop=True, interval=0)

#                    f"🇱🇹 Вильнюс: {time_sofia}\n\n"
#                    f"🇲🇽 Мехико Сити: {time_mexico_city}\n\n"
#                    f"🇮🇱 Тель-Авив: {time_telaviv}\n\n"
#                    f"🇵🇸 Сектор Тольятти: {time_tolyatti}\n\n"