* большой рефакторинг