For efficiency.  All the node object had were three public attributes; it had no methods.  The only noticeable difference in switching is that instead of things like:

```
for child in self._root.children

or 

if self._root.values is None
```

You'd now say:

```
for child in self._root['children']
if self._root['values'] is None
```