Initial (poor) port of the node read code.
(caching not implemented properly yet)