Changed the nodes to rectangles.
Added preliminary labels. Offsets are still hardcoded, rather than derived from the size of the nodes.