Revisiting the adjacency list implementation, trying to get rid of numerous classes, and makingt the interfaces free functions.