reflection-based type description - fixed stackoverflow exception when property on a type was of the same type as a type itself