Big reorganization

Separate functionality to separate files

Redo drawing code to use ruby Graphviz lib