Вроде бы конечный вариант моей проги