added fetch_components: returns a graph of components