class DefaultMutablePath implements MutablePath<V, E> {

    @Override
    public void insertEdge(E edge) {
        checkNotNull(edge, "Edge cannot be null");
        checkArgument(edges.isEmpty() || src().equals(edge.dst()),
                      "Edge destination must be the same as the current path source");
        edges.add(0, edge);
    }

    public  DefaultMutablePath();
    public  DefaultMutablePath(Path<V, E> path);

}