add composite property support