diff --git a/bin/dm-ant b/bin/dm-ant
index 633233f61559d776deabf304cddd5895ee5acb77..96f06205d88f6288b28b2d0c587e74bacfa86334 100755
--- a/bin/dm-ant
+++ b/bin/dm-ant
@@ -13,8 +13,8 @@ if [ -z $DM_ROOT_DIR ]; then
 fi
 
 DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
-export JAVA_HOME=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
-export ANT_HOME=$DM_SUPPORT_DIR/ant
+export JAVA_HOME=$DM_OPT_DIR/java/$DM_HOST_ARCH
+export ANT_HOME=$DM_OPT_DIR/ant
 export PATH=$ANT_HOME/bin:$PATH
 ant $@
 
diff --git a/etc/init.d/dm-glassfish b/etc/init.d/dm-glassfish
index 2f1d0787a1cb646671e01a27b1d88a7377f6b00e..698d9df4a3a499248567fbaa1f558ddfbe885b3b 100755
--- a/etc/init.d/dm-glassfish
+++ b/etc/init.d/dm-glassfish
@@ -31,9 +31,9 @@ if [ ! -f ${DM_ENV_FILE} ]; then
 fi
 . ${DM_ENV_FILE} > /dev/null
 
-export AS_JAVA=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
-DM_GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
-DERBY_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH/javadb/bin
+export AS_JAVA=$DM_OPT_DIR/java/$DM_HOST_ARCH
+DM_GLASSFISH_DIR=$DM_OPT_DIR/glassfish
+DERBY_DIR=$DM_OPT_DIR/glassfish/javadb/bin
 
 DM_DAEMON_NAME=glassfish
 DM_DAEMON_CONTROL_CMD=$DM_GLASSFISH_DIR/bin/asadmin
diff --git a/etc/init.d/dm-postgresql b/etc/init.d/dm-postgresql
index 42857662f8bd71ce4400c76e2953603e38a6500c..31b4437963153c1ea49aed24647205a7282b88ef 100755
--- a/etc/init.d/dm-postgresql
+++ b/etc/init.d/dm-postgresql
@@ -20,7 +20,8 @@
 ### END INIT INFO
 
 # PGVERSION is the full package version, e.g., 8.4.0
-PGVERSION=9.3.4
+#PGVERSION=9.3.4
+PGVERSION=9.6.1
 # PGMAJORVERSION is major version, e.g., 8.4 (this should match PG_VERSION)
 PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\.[0-9]*\).*$/\1/'`
 
@@ -68,7 +69,7 @@ if [ ! -f $DM_SETUP_FILE ]; then
 fi
 . $DM_SETUP_FILE > /dev/null
 
-PGROOT=$DM_SUPPORT_DIR/postgresql/$DM_HOST_ARCH
+PGROOT=$DM_OPT_DIR/postgresql/$DM_HOST_ARCH
 PGENGINE=$PGROOT/bin
 #PGUSER=dm
 PGUSER=`whoami`
diff --git a/sbin/dm_configure_web_portal.sh b/sbin/dm_configure_web_portal.sh
index efa49c4ea9300bf74111086bd3a6ed0bc9548822..fa25a14f04c2e1858278be2895befaceefe5d491 100755
--- a/sbin/dm_configure_web_portal.sh
+++ b/sbin/dm_configure_web_portal.sh
@@ -41,8 +41,8 @@ DM_INSTALL_DIR=${DM_INSTALL_DIR:=$DM_ROOT_DIR/..}
 DM_SYSTEM_PASSWORD_FILE=${DM_INSTALL_DIR}/etc/${DM_SYSTEM_USER}.system.passwd
 DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
 
-GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
-JAVA_HOME=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
+JAVA_HOME=$DM_OPT_DIR/java/$DM_HOST_ARCH
+GLASSFISH_DIR=$DM_OPT_DIR/glassfish
 
 export AS_JAVA=$JAVA_HOME
 ASADMIN_CMD=$GLASSFISH_DIR/bin/asadmin 
diff --git a/sbin/dm_create_db.sh b/sbin/dm_create_db.sh
index 52b3b6c0c879c3f5da88d1dd2eca1a6ca4f1d9dd..7a1c8be20386b1ad769e5124bcfaec197b6413bd 100755
--- a/sbin/dm_create_db.sh
+++ b/sbin/dm_create_db.sh
@@ -69,7 +69,7 @@ fi
 
 echo "Using DB scripts directory: $DM_DB_SCRIPTS_DIR"
 
-PG_DIR=$DM_SUPPORT_DIR/postgresql/$DM_HOST_ARCH
+PG_DIR=$DM_OPT_DIR/postgresql/$DM_HOST_ARCH
 PG_CONTROL_SCRIPT=$DM_ROOT_DIR/etc/init.d/dm-postgresql
 PG_DATA_DIR=$PG_DIR/data
 PG_HBA_CONF=$PG_DATA_DIR/pg_hba.conf
diff --git a/sbin/dm_deploy_web_portal.sh b/sbin/dm_deploy_web_portal.sh
index 782b94f7b902a379e752694d5d2d871f68ae1c2b..bb401cd45292da624f697e949a44336501c01bf8 100755
--- a/sbin/dm_deploy_web_portal.sh
+++ b/sbin/dm_deploy_web_portal.sh
@@ -37,11 +37,11 @@ else
     echo "Deployment config file $deployConfigFile not found, using defaults"
 fi
 
-JAVA_HOME=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
+JAVA_HOME=$DM_OPT_DIR/java/$DM_HOST_ARCH
 DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
 DM_HOSTNAME=`hostname -f`
 DM_CONTEXT_ROOT=${DM_CONTEXT_ROOT:=dm}
-GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
+GLASSFISH_DIR=$DM_OPT_DIR/glassfish
 DM_DEPLOY_DIR=$GLASSFISH_DIR/glassfish/domains/domain1/autodeploy
 DM_DIST_DIR=$DM_ROOT_DIR/src/java/DmWebPortal/dist
 DM_BUILD_WAR_FILE=DmWebPortal.war
diff --git a/sbin/dm_destroy_db.sh b/sbin/dm_destroy_db.sh
index f2454dbcbace40127c0b4d341d296fb6cf4941c2..059e5222973b96ef20d1233d5fef40761232a2c0 100755
--- a/sbin/dm_destroy_db.sh
+++ b/sbin/dm_destroy_db.sh
@@ -35,7 +35,7 @@ if [ -z "$DM_SUPPORT_DIR" ]; then
     echo "Invalid environment file ${DM_ENV_FILE}: DM_SUPPORT_DIR is not defined."
     exit 1
 fi
-PG_DIR=$DM_SUPPORT_DIR/postgresql/$DM_HOST_ARCH
+PG_DIR=$DM_OPT_DIR/postgresql/$DM_HOST_ARCH
 PG_CONTROL_SCRIPT=$DM_ROOT_DIR/etc/init.d/dm-postgresql
 PG_DATA_DIR=$PG_DIR/data
 PG_HBA_CONF=$PG_DATA_DIR/pg_hba.conf
diff --git a/sbin/dm_unconfigure_web_portal.sh b/sbin/dm_unconfigure_web_portal.sh
index accd877a232c34ce1aec836cbce826049f4216c7..de8836c9580d5060eba82d283a79bb5e02ab7f80 100755
--- a/sbin/dm_unconfigure_web_portal.sh
+++ b/sbin/dm_unconfigure_web_portal.sh
@@ -38,8 +38,8 @@ else
 fi
 
 DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
-GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
-JAVA_HOME=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
+JAVA_HOME=$DM_OPT_DIR/java/$DM_HOST_ARCH
+GLASSFISH_DIR=$DM_OPT_DIR/glassfish
 
 export AS_JAVA=$JAVA_HOME
 ASADMIN_CMD=$GLASSFISH_DIR/bin/asadmin 
diff --git a/sbin/dm_undeploy_web_portal.sh b/sbin/dm_undeploy_web_portal.sh
index 88cd23d305b6c56420883dd6fd144300d2388589..cf7f9069f17a3e5f8f023cad5569ee43bf3480b3 100755
--- a/sbin/dm_undeploy_web_portal.sh
+++ b/sbin/dm_undeploy_web_portal.sh
@@ -39,12 +39,12 @@ fi
 
 DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
 DM_CONTEXT_ROOT=${DM_CONTEXT_ROOT:=dm}
-GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
+JAVA_HOME=$DM_OPT_DIR/java/$DM_HOST_ARCH
+GLASSFISH_DIR=$DM_OPT_DIR/glassfish
 DM_DEPLOY_DIR=$GLASSFISH_DIR/glassfish/domains/domain1/autodeploy
 DM_APP_DIR=$GLASSFISH_DIR/glassfish/domains/domain1/applications/$DM_CONTEXT_ROOT
 DM_DIST_DIR=$DM_ROOT_DIR/src/java/DmWebPortal/dist
 DM_WAR_FILE=$DM_CONTEXT_ROOT.war
-JAVA_HOME=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
 
 export AS_JAVA=$JAVA_HOME
 ASADMIN_CMD=$GLASSFISH_DIR/bin/asadmin
diff --git a/sbin/experiment_station.txt b/sbin/experiment_station.txt
index 3150965691ae2107a5b5eb7e794fd73bd53a4a3e..c78a283ee53c9a2e12b1efd886059d89ba38ed96 100644
--- a/sbin/experiment_station.txt
+++ b/sbin/experiment_station.txt
@@ -10,6 +10,7 @@
 "brown_aug14-files", 2
 "brown_mar16-files", 2
 "brown_oct12-files", 2
+"cinbiz_oct16-files", 2
 "cchuang_jul16-files", 2
 "cchuang_oct14-files", 2
 "chuang_nov16-files", 2
@@ -27,9 +28,12 @@
 "hufnagel_oct16-files", 2
 "id1-test01-files", 2
 "internal_aug16-files", 2
+"kaoumi_aug16-files", 2
 "kaoumi_nov16-files", 2
+"kclan_apr16-files", 2
 "kenneth_nov16-files", 2
 "knauf_apr16-files", 2
+"knauf_dec16-files", 2
 "kruzic_feb16-files", 2
 "leyunwang_nov15-files", 2
 "lind_jun16-files", 2
@@ -77,6 +81,7 @@
 "stebner_jun16-files", 2
 "stebner_nov16-files", 2
 "stubbins_jun16-files", 2
+"styger_oct16-files", 2
 "sun_jul16-files", 2
 "sun_may14-files", 2
 "sun_nov14-files", 2
diff --git a/sbin/experiment_station_1id.txt b/sbin/experiment_station_1id.txt
index 673c85888d828e2d6691c0122b017e55f208e97a..ebdd3e2c805729f4c6f0af0b008cd898a43e1b7e 100644
--- a/sbin/experiment_station_1id.txt
+++ b/sbin/experiment_station_1id.txt
@@ -13,6 +13,7 @@
 "cchuang_jul16-files", 2
 "cchuang_oct14-files", 2
 "chuang_nov16-files", 2
+"cinbiz_oct16-files", 2
 "clausen_jul16-files", 2
 "coratella_feb15-files", 2
 "cp-test-001-files", 2
@@ -28,6 +29,8 @@
 "id1-test01-files", 2
 "internal_aug16-files", 2
 "kaoumi_nov16-files", 2
+"kaoumi_aug16-files", 2
+"kclan_apr16-files", 2
 "kenneth_nov16-files", 2
 "knauf_apr16-files", 2
 "kruzic_feb16-files", 2
@@ -77,6 +80,7 @@
 "stebner_jun16-files", 2
 "stebner_nov16-files", 2
 "stubbins_jun16-files", 2
+"styger_oct16-files", 2
 "sun_jul16-files", 2
 "sun_may14-files", 2
 "sun_nov14-files", 2
diff --git a/sbin/upgrade_experiment.sh b/sbin/upgrade_experiment.sh
index b7e2188dc12e6b7178f64f2efcf209b94291e9ba..21370dfd7b90617627fb97a602b49125b8ad9cab 100755
--- a/sbin/upgrade_experiment.sh
+++ b/sbin/upgrade_experiment.sh
@@ -20,6 +20,7 @@ eval $cmd || exit 1
 for e in $experimentList; do
     eName=`echo $e | sed "s?'??g" | sed "s?,??g"`
     echo "Working on experiment $eName"
+    echo "Executing: cat $EXPERIMENT_STATION_FILE | grep $eName | head -1 | cut -f2 -d','"
     stationId=`cat $EXPERIMENT_STATION_FILE | grep $eName | head -1 | cut -f2 -d','`
     if [ -z "$stationId" ]; then
         stationId=1 # test station id
diff --git a/setup.sh b/setup.sh
index ba2bb4f5ade39683e52e3ecd9495afa87ac601bd..9600567ac383cc58fbced29cc77fadda21e392d2 100644
--- a/setup.sh
+++ b/setup.sh
@@ -35,13 +35,14 @@ if [ -z $DM_SUPPORT_DIR ]; then
         export DM_SUPPORT_DIR=`pwd`
     fi
 fi
+
 if [ ! -d $DM_SUPPORT_DIR ]; then
     echo "ERROR: $DM_SUPPORT_DIR directory does not exist. Developers should point DM_SUPPORT_DIR to the desired area." 
     unset DM_SUPPORT_DIR
     return 1
-else
-    export DM_GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
 fi
+export DM_OPT_DIR=$DM_SUPPORT_DIR/opt
+export DM_GLASSFISH_DIR=$DM_OPT_DIR/glassfish
 
 
 # Add to path only if directory exists.
@@ -53,11 +54,11 @@ prependPathIfDirExists() {
 }
 
 # Setup path and other variables
-prependPathIfDirExists $DM_SUPPORT_DIR/node/$DM_HOST_ARCH/bin
-prependPathIfDirExists $DM_SUPPORT_DIR/mongodb/$DM_HOST_ARCH/bin
-prependPathIfDirExists $DM_SUPPORT_DIR/postgresql/$DM_HOST_ARCH/bin
-prependPathIfDirExists $DM_SUPPORT_DIR/java/$DM_HOST_ARCH/bin
-prependPathIfDirExists $DM_SUPPORT_DIR/ant/bin
+prependPathIfDirExists $DM_OPT_DIR/node/$DM_HOST_ARCH/bin
+prependPathIfDirExists $DM_OPT_DIR/mongodb/$DM_HOST_ARCH/bin
+prependPathIfDirExists $DM_OPT_DIR/postgresql/$DM_HOST_ARCH/bin
+prependPathIfDirExists $DM_OPT_DIR/java/$DM_HOST_ARCH/bin
+prependPathIfDirExists $DM_OPT_DIR/ant/bin
 prependPathIfDirExists $DM_ROOT_DIR/bin
 PATH=.:$PATH
 export PATH
@@ -72,7 +73,7 @@ export LD_LIBRARY_PATH
 # Setup python path. 
 # Check if we have local python
 if [ -z $DM_PYTHON_DIR ]; then
-    pythonDir=$DM_SUPPORT_DIR/python/$DM_HOST_ARCH
+    pythonDir=$DM_OPT_DIR/python/$DM_HOST_ARCH
 else
     pythonDir=$DM_PYTHON_DIR
 fi
@@ -93,7 +94,7 @@ export PYTHONPATH
 
 # Setup postgres. 
 if [ -z $DM_POSTGRESQL_DIR ]; then
-    postgresqlDir=$DM_SUPPORT_DIR/postgresql/$DM_HOST_ARCH
+    postgresqlDir=$DM_OPT_DIR/postgresql/$DM_HOST_ARCH
 else
     postgresqlDir=$DM_POSTGRESQL_DIR 
 fi
@@ -106,7 +107,7 @@ if [ -d $postgresqlDir ]; then
 fi
 
 # Setup oracle libraries. 
-oracleDir=$DM_SUPPORT_DIR/opt/oracle-client/$DM_HOST_ARCH
+oracleDir=$DM_OPT_DIR/oracle-client/$DM_HOST_ARCH
 if [ -d $oracleDir ]; then
     LD_LIBRARY_PATH=$oracleDir:$LD_LIBRARY_PATH
     PATH=$oracleDir:$PATH
diff --git a/src/java/DmWebPortal/nbproject/private/private.properties b/src/java/DmWebPortal/nbproject/private/private.properties
index 6bcbd12759e9046737b234985c155100130c01ea..2d526986519c0ff734f5c6d3d479cc43f2833d0e 100644
--- a/src/java/DmWebPortal/nbproject/private/private.properties
+++ b/src/java/DmWebPortal/nbproject/private/private.properties
@@ -1,7 +1,2 @@
-deploy.ant.properties.file=/home/sveseli/.netbeans/8.2/config/GlassFishEE6/Properties/gfv3-334529135.properties
-j2ee.platform.is.jsr109=true
-j2ee.server.domain=/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish/domains/domain1
-j2ee.server.home=/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish
-j2ee.server.instance=[/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish:/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848
-j2ee.server.middleware=/home/sveseli/Work/netbeans/glassfish-4.1.1
-user.properties.file=/home/sveseli/.netbeans/8.2/build.properties
+j2ee.server.home=/home/dm/support/opt/glassfish/glassfish
+j2ee.server.middleware=/home/dm/support/opt/glassfish
diff --git a/src/java/DmWebPortal/nbproject/private/private.properties.orig b/src/java/DmWebPortal/nbproject/private/private.properties.orig
deleted file mode 100644
index 817c2c02d8d510c68178e339cc16cfc4ebf03ca8..0000000000000000000000000000000000000000
--- a/src/java/DmWebPortal/nbproject/private/private.properties.orig
+++ /dev/null
@@ -1,10 +0,0 @@
-deploy.ant.properties.file=/home/sveseli/.netbeans/8.2/config/GlassFishEE6/Properties/gfv3-334529135.properties
-j2ee.platform.is.jsr109=true
-j2ee.server.domain=/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish/domains/domain1
-j2ee.server.home=/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish
-j2ee.server.instance=[/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish:/home/sveseli/Work/netbeans/glassfish-4.1.1/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848
-j2ee.server.middleware=/home/sveseli/Work/netbeans/glassfish-4.1.1
-javac.debug=true
-javadoc.preview=true
-selected.browser=default
-user.properties.file=/home/sveseli/.netbeans/8.2/build.properties
diff --git a/src/java/DmWebPortal/src/java/dm.portal.properties b/src/java/DmWebPortal/src/java/dm.portal.properties
index ffee7ae6acc58f319435f9f147e541b384253c45..04752ec403b111c5152e9d58be501fbb22a43988 100644
--- a/src/java/DmWebPortal/src/java/dm.portal.properties
+++ b/src/java/DmWebPortal/src/java/dm.portal.properties
@@ -5,6 +5,6 @@
 dm.portal.ldapUrl=ldaps://dmid-vm.xray.aps.anl.gov:636
 dm.portal.ldapDnString=uid=USERNAME,ou=DM,ou=People,o=aps.anl.gov,dc=aps,dc=anl,dc=gov
 
-dm.dsWebService.url=https://xstor-devel:22236/dm
+dm.dsWebService.url=https://apsgpfs08:22236/dm
 dm.system.user=dm
-dm.system.passwordFile=DM_INSTALL_DIR/etc/DM_SYSTEM_USER.system.passwd
\ No newline at end of file
+dm.system.passwordFile=DM_INSTALL_DIR/etc/DM_SYSTEM_USER.system.passwd
diff --git a/src/python/dm/__init__.py b/src/python/dm/__init__.py
index 2ac2c5502f6a002cb7e7603af888cb0bcba8d64f..ccd277af3e5dadbbeacb83a19043b3180b23c2d2 100644
--- a/src/python/dm/__init__.py
+++ b/src/python/dm/__init__.py
@@ -1 +1 @@
-__version__ = "0.16 (2017.01.05)"
+__version__ = "1.0 (2017.01.23)"
diff --git a/src/python/dm/aps_user_db/cli/updateUserFromApsDbCli.py b/src/python/dm/aps_user_db/cli/updateUserFromApsDbCli.py
index eed07df52db1c4a962a9f8071b8f22e764143579..8476e3c36ba1cade22a5bc510d15ab355efa240d 100755
--- a/src/python/dm/aps_user_db/cli/updateUserFromApsDbCli.py
+++ b/src/python/dm/aps_user_db/cli/updateUserFromApsDbCli.py
@@ -23,7 +23,7 @@ class UpdateUserFromApsDbCli(DmCli):
         if configFile is None:
             raise InvalidRequest('Config file must be provided.')
         if not os.path.exists(configFile):
-            raise InvalidArgument('Invalid config file: %s.', configFile)
+            raise InvalidArgument('Invalid config file: %s.' % configFile)
 
     def getBadge(self):
         return self.options.badge
diff --git a/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py b/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py
index afc0e615e3f2fbb1081a674c793dd849e0235af6..6c7c347c75dbedcc65dadc2105a42d1f4a062fe7 100755
--- a/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py
+++ b/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py
@@ -27,7 +27,7 @@ class UpdateUsersFromApsDbCli(DmCli):
         if configFile is None:
             raise InvalidRequest('Config file must be provided.')
         if not os.path.exists(configFile):
-            raise InvalidArgument('Invalid config file: %s.', configFile)
+            raise InvalidArgument('Invalid config file: %s.' % configFile)
 
     def runCommand(self):
         self.parseArgs(usage="""