The recursive call here looks like it's just going to get called with the same `property` value...how does this actually get passed the subexpression?