This will not work for fields in between: `object.sub.path`  if `sub` doesn't exist on object, it will throw IllegalArgExc