diff --git a/TestON/JenkinsFile/CHO_Graph_Generator b/TestON/JenkinsFile/CHO_Graph_Generator
index 26e7ca2..db65ce7 100644
--- a/TestON/JenkinsFile/CHO_Graph_Generator
+++ b/TestON/JenkinsFile/CHO_Graph_Generator
@@ -24,6 +24,7 @@
 fileRelated = evaluate readTrusted( 'TestON/JenkinsFile/dependencies/JenkinsPathAndFiles.groovy' )
 
 fileRelated.init()
+
 // The way reading the parameters from the Jenkins.
 branches = params.ONOSbranch
 hours = params.hours
@@ -34,10 +35,11 @@
 // initialize the directory.
 
 // Script file is the R script path
-script_file = fileRelated.trendCHO
+script_file = fileRelated.rScriptPaths[ "scripts" ][ "trendCHO" ]
+
 // saving_directory is the directory that save the generate graphs.
-saving_directory = fileRelated.jenkinsWorkspace + "postjob-Fabric5/"
-scriptDir = fileRelated.CHOScriptDir
+saving_directory = fileRelated.workspaces[ "Fabric5" ]
+scriptDir = fileRelated.rScriptPaths[ "directories" ][ "CHO" ]
 
 // create a bash script that will generate the graph
 graphScript = generateGraphScript( branchList )
@@ -54,7 +56,7 @@
     postJob()
 }
 
-saving_directory = fileRelated.jenkinsWorkspace + "postjob-Trellis-POD/"
+saving_directory = fileRelated.workspaces[ "Trellis" ]
 graphScript = generateGraphScript( branchList )
 stage( 'Generating-Graph-POD' ) {
     // This will run on TestStation-Trellis-POD node.
diff --git a/TestON/JenkinsFile/Overall_Graph_Generator b/TestON/JenkinsFile/Overall_Graph_Generator
index 6b30ed0..4eed1b3 100644
--- a/TestON/JenkinsFile/Overall_Graph_Generator
+++ b/TestON/JenkinsFile/Overall_Graph_Generator
@@ -27,9 +27,9 @@
 fileRelated.init()
 
 // set the file and directory paths.
-stat_graph_generator_file = fileRelated.histogramMultiple
-pie_graph_generator_file = fileRelated.pieMultiple
-graph_saved_directory = fileRelated.jenkinsWorkspace + "postjob-VM/"
+stat_graph_generator_file = fileRelated.rScriptPaths[ "scripts" ][ "histogramMultiple" ]
+pie_graph_generator_file = fileRelated.rScriptPaths[ "scripts" ][ "pieMultiple" ]
+graph_saved_directory = fileRelated.workspaces[ "VM" ]
 
 // init trend which will generate the pie and histogram graphs to be VM.
 funcs.initializeTrend( "VM" )
diff --git a/TestON/JenkinsFile/Trend_Graph_Generator b/TestON/JenkinsFile/Trend_Graph_Generator
index 77e57c9..fc20373 100644
--- a/TestON/JenkinsFile/Trend_Graph_Generator
+++ b/TestON/JenkinsFile/Trend_Graph_Generator
@@ -43,8 +43,8 @@
 prop[ "ONOSBranch" ] = params.ONOSbranch
 
 // set some of the paths of the file and directory
-graph_generator_file = fileRelated.trendIndividual
-graph_saved_directory = fileRelated.jenkinsWorkspace + "postjob-" + nodeCluster +
+graph_generator_file = fileRelated.rScriptPaths[ "scripts" ][ "trendIndividual" ]
+graph_saved_directory = fileRelated.workspaces[ "base" ] + "postjob-" + nodeCluster +
                         ( nodeCluster == "Fabric" ? funcs.fabricOn( prop[ "ONOSBranch" ] ) : "" ) + "/"
 
 def testsToRun = null
diff --git a/TestON/JenkinsFile/dependencies/JenkinsPathAndFiles.groovy b/TestON/JenkinsFile/dependencies/JenkinsPathAndFiles.groovy
index 6eb1061..73a8751 100644
--- a/TestON/JenkinsFile/dependencies/JenkinsPathAndFiles.groovy
+++ b/TestON/JenkinsFile/dependencies/JenkinsPathAndFiles.groovy
@@ -22,30 +22,20 @@
 // This is the dependency Jenkins script.
 // This will initialize the paths of the jenkins file and paths.
 
-// init the paths for the directory
-def initLocation(){
-    jenkinsFolder = "~/OnosSystemTest/TestON/JenkinsFile/"
-    rScriptLocation = jenkinsFolder + "wikiGraphRScripts/"
-    jenkinsWorkspace = "/var/jenkins/workspace/"
-    SCPFSpecificLocation = rScriptLocation + "SCPFspecificGraphRScripts/"
-    CHOScriptDir = "~/CHO_Jenkins_Scripts/"
-}
+import groovy.json.*
 
-// init the paths for the files.
-def initFiles(){
-    trendIndividual = rScriptLocation + "trendIndividualTest.R"
-    trendMultiple = rScriptLocation + "trendMultipleTests.R"
-    trendSCPF = rScriptLocation + "trendSCPF.R"
-    trendCHO = rScriptLocation + "trendCHO.R"
-    histogramMultiple = rScriptLocation + "histogramMultipleTestGroups.R"
-    pieMultiple = rScriptLocation + "pieMultipleTests.R"
-}
+jenkinsFiles = ""
+rScriptPaths = [:]      // paths of r script files that generate wiki graphs
+workspaces = [:]        // postjob workspaces
 
 // init both directory and file paths.
 def init(){
-    initLocation()
-    initFiles()
+    def paths_buffer = readTrusted( "TestON/JenkinsFile/dependencies/paths.json" )
+    paths_json = readJSON text: paths_buffer
+
+    jenkinsFiles = paths_json[ "jenkinsFiles" ]
+    workspaces = paths_json[ "workspaces" ]
+    rScriptPaths = paths_json[ "rScript" ]
 }
 
 return this
-
diff --git a/TestON/JenkinsFile/dependencies/PerformanceFuncs.groovy b/TestON/JenkinsFile/dependencies/PerformanceFuncs.groovy
index 4e185fc..452ddfc 100644
--- a/TestON/JenkinsFile/dependencies/PerformanceFuncs.groovy
+++ b/TestON/JenkinsFile/dependencies/PerformanceFuncs.groovy
@@ -242,7 +242,7 @@
                                          dbWhere: 'AND scale=5',
                                          y_axis: 'Latency (ms)' ]
     ]
-    graph_saved_directory = fileRelated.jenkinsWorkspace + "postjob-BM/"
+    graph_saved_directory = fileRelated.workspaces[ "BM" ]
 }
 
 def getGraphCommand( rFileName, extras, host, port, user, pass, testName, branchName, isOldFlow ){
@@ -258,7 +258,7 @@
 def generateGraph( rFileName, batch, host, port, user, pass, testName, branchName, isOldFlow ){
     //  generate the Rscript command for individual graphs
 
-    return generalFuncs.basicGraphPart( fileRelated.SCPFSpecificLocation + rFileName,
+    return generalFuncs.basicGraphPart( fileRelated.rScriptPaths[ "directories" ][ "SCPF" ] + rFileName,
                                         host, port, user, pass, testName, branchName ) +
            " " + batch + " " + usingOldFlow( isOldFlow, testName ) + graph_saved_directory
 }
@@ -268,7 +268,7 @@
     def result = ""
 
     for ( int i = 0; i < SCPF[ testName ][ 'graphTitle' ].size(); i++ ){
-        result += generalFuncs.basicGraphPart( fileRelated.trendSCPF,
+        result += generalFuncs.basicGraphPart( fileRelated.rScriptPaths[ "scripts" ][ "trendSCPF" ],
                                                host,
                                                port,
                                                user,
diff --git a/TestON/JenkinsFile/dependencies/paths.json b/TestON/JenkinsFile/dependencies/paths.json
new file mode 100644
index 0000000..87bb6c0
--- /dev/null
+++ b/TestON/JenkinsFile/dependencies/paths.json
@@ -0,0 +1,27 @@
+{
+    "jenkinsFiles": "~/OnosSystemTest/TestON/JenkinsFile/",
+    "workspaces" : {
+        "base" : "/var/jenkins/workspace/",
+        "all-pipeline-trigger" : "/var/jenkins/workspace/all-pipeline-trigger/",
+        "BM" : "/var/jenkins/workspace/postjob-BM/",
+        "VM" : "/var/jenkins/workspace/postjob-VM/",
+        "Fabric" : "/var/jenkins/workspace/postjob-Fabric/",
+        "Fabric5" : "/var/jenkins/workspace/postjob-Fabric5/",
+        "Trellis" : "/var/jenkins/workspace/postjob-Trellis-POD/"
+    },
+    "rScript": {
+        "directories": {
+            "base": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/",
+            "SCPF": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/SCPFspecificGraphRScripts",
+            "CHO": "~/CHO_Jenkins_Scripts"
+        },
+        "scripts": {
+            "trendIndividual": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/trendIndividualTest.R",
+            "trendMultiple": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/trendMultipleTests.R",
+            "trendSCPF": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/trendSCPF.R",
+            "trendCHO": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/trendCHO.R",
+            "histogramMultiple": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/histogramMultipleTestGroups.R",
+            "pieMultiple": "~/OnosSystemTest/TestON/JenkinsFile/wikiGraphRScripts/pieMultipleTests.R"
+        }
+    }
+}
