Basis for tree UI

Dragging and dropping
This also serves as a good example program