New idea of how an the whole thing should look like
A simple node manager to resolve the IDs
Basic implementation of the ASTNode plus some tests
Clean-up
Tested the sanity of my JSON handling
Added a test for the NodeManager
The node now registers itself to the manager

This happens once it's created
Changed the toString implementation in ASTNode
Simple way of applying a simple update
I am expanding the nodes when I create the AST

So all the nodes are registered. This was I can apply the updates
any time I want
Cleaned the input string a bit
Extracted the application of an update into it's own method

I also changed the update, so that it receives the ID, not the node.
This makes it easier to implement when the node does not exist (for
example I am adding a new node).
Added a test to add a new global variable
The getNode method can now create a new one when it can't find it

This treated the case when I create a new node
Stub of a class for handling a history operation

I.e. an update to more than one node
Doing the right cast
I am no longer expanding the nodes when I do the getProperty

I am doing this at the beginning so this call will just throw exceptions
Update property now takes any kind of object
The ASTNode can now deal with references
The test for creating a global variable