ВНИМАНИЕ! По прошествии времени выяснилось, что заказчик сделал работу для конкретного случая, а не решение проблемы в целом, доделывать отказался. По скольку одобрение происходила через скайп через демонстрацию экрана, полностью ознакомиться с кодом я смог только после оплаты.