Uses new node sub classes