Осталось доделать немного, но все классы готовы