Added Program and Definition nodes

Works with single def programs, multiple defs appear to be consumed by
previous defs, ruining our structure a bit. BUT IT WORKS!