основная реализация