Adding Interface and AdjacencyList implementation