Changed graph implementation from functional based on *vector* to imperative based on *array* because it gives an enormous performance boost on huge graphs (tested SCC with 1.000.000 nodes and 10.000.000 edges)