вот тут надо подумать - мы полагаемся на id, на месте которого может быть и другой тип или не быть типа вообще.