diff --git a/TestON/JenkinsFile/scripts/SCPFmastershipFailoverLat.R b/TestON/JenkinsFile/scripts/SCPFmastershipFailoverLat.R
index 82638dc..8681f29 100644
--- a/TestON/JenkinsFile/scripts/SCPFmastershipFailoverLat.R
+++ b/TestON/JenkinsFile/scripts/SCPFmastershipFailoverLat.R
@@ -27,6 +27,13 @@
 print( "**********************************************************" )
 print( "STEP 1: Data management." )
 print( "**********************************************************" )
+database_host = 1
+database_port = 2
+database_u_id = 3
+database_pw = 4
+test_name = 5
+branch_name = 6
+save_directory = 7
 
 # Command line arguments are read.
 print( "Reading commmand-line args." )
@@ -46,9 +53,7 @@
 # -------------------
 
 print( "Verifying CLI args." )
-
-if ( is.na( args[ 7 ] ) ){
-
+if ( is.na( args[ save_directory ] ) ){
     print( paste( "Usage: Rscript SCPFmastershipFailoverLat",
                                   "<database-host>",
                                   "<database-port>",
@@ -70,17 +75,17 @@
 
 chartTitle <- "Mastership Failover Latency"
 
-errBarOutputFile <- paste( args[ 7 ],
-                           args[ 5 ],
+errBarOutputFile <- paste( args[ save_directory ],
+                           args[ test_name ],
                            "_",
-                           args[ 6 ],
+                           args[ branch_name ],
                            "_errGraph.jpg",
                            sep="" )
 
-stackedBarOutputFile <- paste( args[ 7 ],
-                        args[ 5 ],
+stackedBarOutputFile <- paste( args[ save_directory ],
+                        args[ test_name ],
                         "_",
-                        args[ 6 ],
+                        args[ branch_name ],
                         "_stackedGraph.jpg",
                         sep="" )
 
@@ -92,10 +97,10 @@
 
 con <- dbConnect( dbDriver( "PostgreSQL" ),
                   dbname = "onostest",
-                  host = args[ 1 ],
-                  port = strtoi( args[ 2 ] ),
-                  user = args[ 3 ],
-                  password = args[ 4 ] )
+                  host = args[ database_host ],
+                  port = strtoi( args[ database_port ] ),
+                  user = args[ database_u_id ],
+                  password = args[ database_pw ] )
 
 # ---------------------------------------
 # Mastership Failover Latency SQL Command
@@ -104,9 +109,9 @@
 print( "Generating Mastership Failover Latency SQL command" )
 
 command  <- paste( "SELECT * FROM mastership_failover_tests WHERE branch = '",
-                   args[ 6 ],
+                   args[ branch_name ],
                    "' AND date IN ( SELECT MAX( date ) FROM mastership_failover_tests WHERE branch = '",
-                   args[ 6 ],
+                   args[ branch_name ],
                    "' ) ",
                    sep = "" )
 
