рефакторинг (не завершен)