This looks like it would be fragile, comparing to the number of properties returned. Already known visible services would have already been stored in the m_servicesOrder list. Except that it is cleared on line 207 above. I think it would be more robust to take a copy of m_servicesOrder and check whether it contains service to determine whether the service is newly added or not.