graphviz is optional