Big reorganization

Separate functionality to separate files
Redo drawing code to use ruby Graphviz lib