Use node.deep_fetch, guard access to nested attrs

Fixes #58, switch to node.deep_fetch and better guards