It's a shame that IProperties isn't very const parameter friendly.  Neither getIterator() or queryProp() are const.  But I'll still use const here and const_cast where necessary.  We could clean up IProperties use of const at some point.