GR 42 - restrict fields

@twinge, please review
Can you give me an example of what this line does? I'm picturing a list of things like `first_name,last_name,address.street1` is that what `fields` will look like? If so, and if i'm reading this right, `first_name` becomes `nil`, and `address.street1` becomes `address`, but what i'm not understanding is why it's a while loop