Окончательный вариант классов (надеюсь)