Написаны все необходимые функции, программа работает, но не идеально.