Out of interest, does this pass the complier if you remove the typecast? I think it might, since all the required properties are present, but I'm not sure.