added graph path finding