Refactored extractSource into a separate function so that we can extract the source directly instead of needing to set the path and running extract source.

also, enhanced implementation such that we can drill down to extract a value ( previously, nodes that we are extracting from drilling down are required to be a map.