actually return the root nodes of the subgraph
fix edge arrows and endpoints
fix endpoints once again
placing and drawing separated for edges, also distribute children slightly different