added some refined property type detection