diff --git a/etc/vagrant/bootstrap.sh b/etc/vagrant/bootstrap.sh
index d530d82e252a2cc9a8e43e5ac1b7a7da043444f1..ec39ab7963540adb9ea3982ff68b52131f8fa0ac 100644
--- a/etc/vagrant/bootstrap.sh
+++ b/etc/vagrant/bootstrap.sh
@@ -1,5 +1,5 @@
 #! /bin/bash
-###########################
+#############################
 # This bootstrap script installs some build tools and the packages
 #   neo4j, neo4j-spatial, httpd, postgresql, postgis, pgRouting, osmosis, osm2pgrouting
 # into a centos6/fedora19 environment.
@@ -10,19 +10,26 @@
 #
 # After various installations, the databases, the httpd server, tomcat
 # (and therefor also geoserver, which is installed as war file) are started
-###########################
-# Environment configuration
-###########################
+############################
 
 if [ -f "/var/vagrant_provision" ]; then
-  exit 0
+	exit 0
 fi
 
+if [ "$EUID" -ne "0" ]; then
+	echo '- The bootstrap script must be run as root!'
+	exit 1
+fi
+
+############################
+# Variable definitions     #
+############################
+
 IMPORT_OSMDATA=true
 IMPORT_OSMDATA_CACHED=true
 IMPORT_SCHEDULES=true
 INSTALL_HTTPD=true
-INSTALL_GEOSERVER=false
+INSTALL_GEOSERVER=true
 INSTALL_NEO4J=false
 INSTALL_NEO4J_SPATIAL=false
 INSTALL_PGROUTING=true
@@ -43,6 +50,10 @@ INSTALL_ISOCHRONE_RELEASE=true
 INSTALL_ISOCHRONE_SNAPSHOT=true
 INSTALL_PROJECT_PSIPROBE=true
 
+############################
+# Ext. argument handling   #
+############################
+
 PG_DB_NAME="isochrone"
 PG_DB_USER="@db_username@"
 PG_DB_PASSWORD="@db_password@"
@@ -60,9 +71,9 @@ if [ -n "$3" ]; then
 	fi
 fi
 
-###########################
-# General configuration
-###########################
+############################
+# General configuration    #
+############################
 
 CACHE_DIR_LOCAL="/tmp/vagrant-cache"
 CACHE_DIR_REMOTE="http://www.krismer.de/files/PhD"
@@ -70,12 +81,18 @@ DEPLOY_DIR="/opt"
 DOWNLOAD_DIR="$CACHE_DIR_LOCAL/wget"
 SHARED_CONF_DIR="/setup/conf"
 SHARED_IMG_DIR="/setup/img"
+WORKING_DIR=`pwd`
 
-CMAKE_VERSION="2.8.12.1"
-CMAKE_VERSION_MAIN="v2.8"
-CMAKE_FILE="cmake-$CMAKE_VERSION.tar.gz"
+############################
+# Components configuration #
+############################
+
+#Armadillo from epel is too new for postgis (version 4 instead of 3), so use hard-coded file here
+ARMADILLO_FILE="armadillo-3.800.2-1.el6.x86_64.rpm"
+ARMADILLO_URL="$CACHE_DIR_REMOTE/armadillo-3.800.2-1.el6.x86_64.rpm"
 GEOSERVER_VERSION="2.5.2"
 GEOSERVER_FILE="geoserver-$GEOSERVER_VERSION-war.zip"
+GEOSERVER_DOWNLOAD_URL="http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE"
 GEOSERVER_SHELL_VERSION="0.2-SNAPSHOT"
 GEOSERVER_SHELL_FILE="gs-shell-$GEOSERVER_SHELL_VERSION-app.zip"
 JAVA_VERSION="8u11"
@@ -84,11 +101,15 @@ JAVA_FILE_64="jdk-$JAVA_VERSION-linux-x64.rpm"
 JAVA_CRYPTO_FILE="jce_policy-8.zip"
 MAVEN_VERSION="3.2.2"
 MAVEN_FILE="apache-maven-$MAVEN_VERSION-bin.zip"
+MAVEN_DOWNLOAD_URL="http://tweedo.com/mirror/apache/maven/maven-3/3.1.1/binaries/$MAVEN_FILE"
 NEO4J_DB_USER="neo4j"
 NEO4J_VERSION="2.1.3"
 NEO4J_FILE="neo4j-community-$NEO4J_VERSION-unix.tar.gz"
+NEO4J_DOWNLOAD_URL="http://dist.neo4j.org/$NEO4J_FILE"
 NEO4J_SERVICE_NAME="neo4j-service"
+NEO4J_SPATIAL_GIT_URL="https://github.com/neo4j/spatial.git"
 NEO4J_SPATIAL_VERSION="0.13-neo4j-2.1"
+NEO4J_SPATIAL_PLUGIN_DOWNLOAD_URL="http://dist.neo4j.org.s3.amazonaws.com/spatial/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip"
 NEXUS_ARTIFACT_NAME="isochrone-web"
 NEXUS_BASE_URL_DBIS="http://138.232.66.78/nexus"
 NEXUS_BASE_URL_KRISMER="https://server.krismer.de/nexus"
@@ -108,6 +129,7 @@ OSM_BBOX_IBK="${SHARED_CONF_DIR}/poly_ibk.poly"
 OSM_BBOX_IT="${SHARED_CONF_DIR}/poly_it.poly"
 OSM_BBOX_SF="${SHARED_CONF_DIR}/poly_sf.poly"
 OSM_BBOX_ST="${SHARED_CONF_DIR}/poly_st.poly" #also referred to as poly_taa.poly
+OSM_DOWNLOAD_MIRROR="http://download.geofabrik.de"
 OSM_FILE_AUSTRIA="europe/austria-140301.osm.pbf"
 OSM_FILE_ITALY="europe/italy-140301.osm.pbf"
 OSM_FILE_CALIFORNIA="north-america/us/california-140301.osm.pbf"
@@ -117,40 +139,53 @@ OSM_FILE_IT_FILTERED="italy-140301-filtered.osm"
 OSM_FILE_SF_FILTERED="sanfrancisco-140301-filtered.osm"
 OSM_FILE_ST_FILTERED="southtyrol-140301-filtered.osm"
 OSM_KEYS="aerialway,highway,public_transport,railway,route"
+OSM2PGROUTING_GIT_URL="https://github.com/pgRouting/osm2pgrouting.git"
 OSM2PGROUTING_VERSION="v2.0.0"
 OSM2PGROUTING_MAPPING_CONF="$DEPLOY_DIR/osm2pgrouting/mapconfig.xml"
 OSMOSIS_VERSION="0.43.1"
 OSMOSIS_FILE="osmosis-$OSMOSIS_VERSION.zip"
-POSTGIS_VERSION="2.1.3"
+OSMOSIS_DOWNLOAD_URL="http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE"
+POSTGIS_GIT_URL="https://github.com/postgis/postgis.git"
+POSTGIS_VERSION="auto"      # activate to install from repository
+#POSTGIS_VERSION="2.1.3"    # activate to install from source
 POSTGRESQL_DATA_DIR="/var/lib/pgsql/9.3/data"
 POSTGRESQL_HBA_CONF="$POSTGRESQL_DATA_DIR/pg_hba.conf"
 POSTGRESQL_PKG_NAME="postgresql93"
 POSTGRESQL_SERVICE_NAME="postgresql-9.3"
-PGROUTING_VERSION="2.0.0"
-REPO_BASE_CONFIG="/etc/yum.repos.d/fedora-updates.repo"
+PGROUTING_GIT_URL="https://github.com/pgRouting/pgrouting.git"
+PGROUTING_VERSION="auto"      # activate to install from repository
+#PGROUTING_VERSION="2.0.0"    # activate to install from source
+REPO_CONFIG="/etc/yum.repos.d/fedora-updates.repo"
 REPO_EPEL="http://fedora.aau.at/epel/6/i386/epel-release-6-8.noarch.rpm"
+REPO_POSTGRESQL=""            # will be set later (depending on architecture)
 REPO_POSTGRESQL_32="http://yum.postgresql.org/9.3/fedora/fedora-20-i386/pgdg-fedora93-9.3-1.noarch.rpm"
 REPO_POSTGRESQL_64="http://yum.postgresql.org/9.3/fedora/fedora-20-x86_64/pgdg-fedora93-9.3-1.noarch.rpm"
-REPO_RPMFORGE_CONFIG="/etc/yum.repos.d/rpmforge.repo"
+REPO_RPMFORGE=""              # will be set later (depending on architecture)
 REPO_RPMFORGE_32="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm"
 REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm"
+REPO_RPMFORGE_CONFIG="/etc/yum.repos.d/rpmforge.repo"
+SELINUX_CONFIG="/etc/selinux/config"
 TABLE_PREFIX_BZ="bz_"
 TABLE_PREFIX_IBK="ibk_"
 TABLE_PREFIX_IT="it_"
 TABLE_PREFIX_SF="sf_"
 TABLE_PREFIX_ST="st_"
-TEMPLATE_VERSION_PSIPROBE="2.3.3"
-TEMPLATE_FILE_PSIPROBE="probe-$TEMPLATE_VERSION_PSIPROBE.zip"
+TEMPLATE_PSIPROBE_VERSION="2.3.3"
+TEMPLATE_PSIPROBE_FILE="probe-$TEMPLATE_PSIPROBE_VERSION.zip"
+TEMPLATE_PSIPROBE_DOWNLOAD_URL="https://psi-probe.googlecode.com/files/$TEMPLATE_PSIPROBE_FILE"
 TEMPLATE_DIR_ISOCHRONE="/vagrant"
 TOMCAT_VERSION="8.0.9"
 TOMCAT_FILE="apache-tomcat-$TOMCAT_VERSION.tar.gz"
+TOMCAT_DOWNLOAD_URL="http://tweedo.com/mirror/apache/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/$TOMCAT_FILE"
 TOMCAT_MEMORY_OPTS="-Xmx2048m -Xms512m -XX:MaxPermSize=512m"
 TOMCAT_NAME="tomcat"
 TOMCAT_USER="tomcat"
-TOPOLOGY_TOLERANCE="0.0005"
+TOMCAT_WEBAPP_DIR="$DEPLOY_DIR/$TOMCAT_NAME/webapps"
+TOPOLOGY_TOLERANCE=0.0005
 
-## Calculated variables
-#######################
+############################
+# Calculated configuration #
+############################
 
 INSTALL_JAVA=false
 INSTALL_MAVEN=false
@@ -178,6 +213,10 @@ if $INSTALL_POSTGRES_ADMIN || $INSALL_POSTGIS; then
 	INSTALL_POSTGRES=true
 fi
 
+############################
+# OS check & configuration #
+############################
+
 DISTRI_FILE="/etc/redhat-release"
 if  [ ! -f "$DISTRI_FILE" ]; then
 	DISTRI_FILE="/etc/issue"
@@ -186,8 +225,8 @@ DISTRI_NAME=$(cat "$DISTRI_FILE" | head -n 1)
 DISTRI_SUPPORTED=false
 DISTRI_TYPE="Fedora 20"
 DISTRI=$(printf "$DISTRI_NAME" | cut -d " " -f 1)
-if [ $DISTRI == "CentOS" ]; then
-	REPO_BASE_CONFIG="/etc/yum.repos.d/CentOS-Base.repo"
+if [ "$DISTRI" == "CentOS" ]; then
+	REPO_CONFIG="/etc/yum.repos.d/CentOS-Base.repo"
 	if printf "$DISTRI_NAME" | egrep -q " 6." ; then
 		DISTRI_TYPE="CentOS 6"
 		REPO_POSTGRESQL_32="http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm"
@@ -202,7 +241,7 @@ if [ $DISTRI == "CentOS" ]; then
 		REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm"
 		DISTRI_SUPPORTED=true
 	fi
-elif [ $DISTRI == "Fedora" ]; then
+elif [ "$DISTRI" == "Fedora" ]; then
 	if echo $DISTRI_NAME | egrep -q " 20 (Heisenbug)" ; then
 		DISTRI_SUPPORTED=true
 	fi
@@ -228,17 +267,14 @@ else
 	JAVA_FILE="$JAVA_FILE_32"
 fi
 
-START=$(date +%s)
-TOMCAT_WEBAPP_DIR="$DEPLOY_DIR/$TOMCAT_NAME/webapps"
-WORKING_DIR=`pwd`
-
-## Functions
-############
+############################
+# Function definitions     #
+############################
 
 fn_download()
 {
-	FILE="$1"
-	URL="$2"
+	local FILE="$1"
+	local URL="$2"
 
 	if wget --no-check-certificate -q -O /dev/null "$URL"; then
 		wget --no-check-certificate -q -O "$FILE" "$URL"
@@ -248,8 +284,8 @@ fn_download()
 # "wget -N" does not work with "-O" option... so we use a workaround here
 fn_download_newer()
 {
-	FILE="$1"
-	URL="$2"
+	local FILE="$1"
+	local URL="$2"
 
 	if  [ ! -f "$FILE" ]; then
 		if wget --no-check-certificate -q -O /dev/null "$URL"; then
@@ -260,12 +296,12 @@ fn_download_newer()
 
 fn_import_data()
 {
-	NAME="$1"
-	OSM_FILE="$2"
-	OSM_FILE_FILTERED="$3"
-	BOUNDING="$4"
-	SCHEDULE_FILE="$5"
-	TABLE_PREFIX="$6"
+	local NAME="$1"
+	local OSM_FILE="$2"
+	local OSM_FILE_FILTERED="$3"
+	local BOUNDING="$4"
+	local SCHEDULE_FILE="$5"
+	local TABLE_PREFIX="$6"
 
 	echo "Importing data for region of $NAME"
 	if $IMPORT_OSMDATA_CACHED; then
@@ -277,7 +313,7 @@ fn_import_data()
 	if [ ! -f $DEPLOY_DIR/$OSM_FILE_FILTERED ]; then
 		echo "  - downloading OpenStreetMap file"
 		OSM_FILENAME=$DOWNLOAD_DIR/${OSM_FILE##*/}
-		fn_download_newer $OSM_FILENAME http://download.geofabrik.de/$OSM_FILE
+		fn_download_newer $OSM_FILENAME $OSM_DOWNLOAD_MIRROR/$OSM_FILE
 
 		echo "  - filtering OpenStreetMap data"
 		if [[ "$BOUNDING" == *.poly ]]; then
@@ -320,10 +356,105 @@ fn_import_data()
 	fi
 }
 
-## Start of environment preparation
-###################################
+fn_service_start()
+{
+	local SERVICE_NAME="$1"
+
+	touch "service_start_$SERVICE_NAME.log" 2>&1
+	if [ "$DISTRI_TYPE" == "CentOS 6" ]; then
+		service $SERVICE_NAME start >> "service_start_$SERVICE_NAME.log" 2>&1
+		chkconfig $SERVICE_NAME on "service_start_$SERVICE_NAME.log" 2>&1
+	else
+		systemctl start $SERVICE_NAME >> "service_start_$SERVICE_NAME.log" 2>&1
+		systemctl enable $SERVICE_NAME >> "service_start_$SERVICE_NAME.log" 2>&1
+	fi
+}
+
+fn_service_stop()
+{
+	local SERVICE_NAME="$1"
+
+	touch "service_stop_$SERVICE_NAME.log" 2>&1
+	if [ "$DISTRI_TYPE" == "CentOS 6" ]; then
+		service $SERVICE_NAME stop >> "service_stop_$SERVICE_NAME.log" 2>&1
+		chkconfig $SERVICE_NAME off "service_stop_$SERVICE_NAME.log" 2>&1
+	else
+		systemctl stop $SERVICE_NAME >> "service_stop_$SERVICE_NAME.log" 2>&1
+		systemctl disable $SERVICE_NAME >> "service_stop_$SERVICE_NAME.log" 2>&1
+	fi
+}
+
+START=$(date +%s)
+
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+echo " Performing basic system preparations:"
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+
+############################
+# Basic preparations       #
+############################
+
+cd $WORKING_DIR
+mkdir -p $DOWNLOAD_DIR
+
+echo "Configuring timezone"
+cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime > setup_timezone.log 2>&1
+
+echo "Installing utils (gcc, git, ...)"
+yum -y install gcc gcc-c++ git gzip iptables-services nano nmap sed tar unzip wget > install_utils.log 2>&1
+
+############################
+# Security preparations    #
+############################
+
+echo "Stopping Firewall and SELinux"
+if [ "$DISTRI_TYPE" == "CentOS 6" ]; then
+	fn_service_stop "iptables"
+	fn_service_stop "ip6tables"
+else
+	fn_service_stop "firewalld"
+fi
+
+if [ $(getenforce) == "Enforcing" ]; then
+  setenforce 0 > stop_selinux.log 2>&1
+fi
+sed -i 's/SELINUX=enabled/SELINUX=disabled/' $SELINUX_CONFIG
+
+############################
+# Repository preparations  #
+############################
+
+if $INSTALL_POSTGRES; then
+	if [ "$DISTRI" == "CentOS" ]; then
+		sed -i 's/\[base\]/\[base\]\nexclude=postgresql\*/' $REPO_CONFIG
+		sed -i 's/\[updates\]/\[updates\]\nexclude=postgresql\*/' $REPO_CONFIG
+	else
+		sed -i 's/\[fedora\]/\[fedora\]\nexclude=postgresql\*/' $REPO_CONFIG
+	fi
+
+	# Epel Repository is needed for dependencies (gdal!) of postgresql/postgis/pgRouting
+	echo "Installing epel repository"
+	fn_download $DOWNLOAD_DIR/epel-repo.rpm $REPO_EPEL
+	yum -y localinstall $DOWNLOAD_DIR/epel-repo.rpm > install_epel_repo.log 2>&1
+	echo "   - enabled"
+
+	echo "Installing $POSTGRESQL_SERVICE_NAME repository"
+	fn_download $DOWNLOAD_DIR/postgresql-repo.rpm $REPO_POSTGRESQL
+	yum -y localinstall $DOWNLOAD_DIR/postgresql-repo.rpm > install_postgresql_repo.log 2>&1
+	echo "   - enabled"
+fi
+
+# RpmForge is deactivated by default and has to be explicitly activated when using yum
+echo "Installing rpmForge repository"
+fn_download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm $REPO_RPMFORGE
+yum -y localinstall $DOWNLOAD_DIR/rpmforge-repo.rpm > install_rpmforge_repo.log 2>&1
+echo "   - disabled"
+sed -i 's/enabled = 1/enabled = 0/' $REPO_RPMFORGE_CONFIG
+
+############################
+# Repository preparations  #
+############################
 
-echo ""
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 echo " Bootstrapping the VM:"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
@@ -358,56 +489,8 @@ echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 echo " Performing installations:"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 
-# Are we punching above our weight?
-if [ "$EUID" -ne "0" ]; then
-	echo '- The bootstrap script must be run as root!'
-	exit 1
-fi
-
-cd $WORKING_DIR
-mkdir -p $DOWNLOAD_DIR
-
-echo "Configuring timezone"
-cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime > setup_timezone.log 2>&1
-
-echo "Installing utils (gcc, git, ...) with yum repository version"
-yum -y install gcc gcc-c++ git iptables-services nano nmap sed tar unzip wget > insall_utils.log 2>&1
-
-#echo "Installing krismer repository"
-#fn_download_newer $DOWNLOAD_DIR/krismer.repo $NEXUS_YUM_REPO
-#cp $DOWNLOAD_DIR/krismer.repo /etc/yum.repos.d > install_krismer_repo.log 2>&1
-
-if $INSTALL_POSTGRES; then
-	if [ $DISTRI == "CentOS" ]; then
-		sed -i 's/\[base\]/\[base\]\nexclude=postgresql\*/' $REPO_BASE_CONFIG
-		sed -i 's/\[updates\]/\[updates\]\nexclude=postgresql\*/' $REPO_BASE_CONFIG
-	else
-		sed -i 's/\[fedora\]/\[fedora\]\nexclude=postgresql\*/' $REPO_BASE_CONFIG
-	fi
-
-	echo "Installing postgresql-9.3 repository"
-	fn_download $DOWNLOAD_DIR/postgresql-repo.rpm $REPO_POSTGRESQL
-	yum -y localinstall $DOWNLOAD_DIR/postgresql-repo.rpm > install_postgresql_repo.log 2>&1
-
-	echo "Installing epel repository"
-	fn_download $DOWNLOAD_DIR/epel-repo.rpm $REPO_EPEL
-	yum -y localinstall $DOWNLOAD_DIR/epel-repo.rpm > install_epel_repo.log 2>&1
-fi
-
-echo "Stopping Firewall and SELinux"
-service iptables stop > stop_iptables.log 2>&1
-service ip6tables stop >> stop_iptables.log 2>&1
-service firewalld stop >> stop_iptables.log 2>&1
-chkconfig iptables off >> stop_iptables.log 2>&1
-chkconfig iptables off >> stop_iptables.log 2>&1
-chkconfig iptables off >> stop_iptables.log 2>&1
-systemctl disable iptables >> stop_iptables.log 2>&1
-systemctl disable ip6tables >> stop_iptables.log 2>&1
-systemctl disable firewalld >> stop_iptables.log 2>&1
-if [ $(getenforce) == "Enforcing" ]; then
-  setenforce 0 > stop_selinux.log 2>&1
-fi
-sed -i 's/SELINUX=enabled/SELINUX=disabled/' /etc/selinux/config
+echo "Installing cmake"
+yum -y --enablerepo=rpmforge-extras install cmake > install_cmake.log 2>&1
 
 if $INSTALL_HTTPD; then
 	echo "Installing httpd server"
@@ -415,29 +498,35 @@ if $INSTALL_HTTPD; then
 fi
 
 if $INSTALL_POSTGRES; then
-	echo "Installing $POSTGRESQL_PKG_NAME"
-	yum -y install $POSTGRESQL_PKG_NAME $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-server $POSTGRESQL_PKG_NAME-contrib > install_postgresql.log 2>&1
+	echo "Installing $POSTGRESQL_SERVICE_NAME"
+	yum -y install $POSTGRESQL_PKG_NAME $POSTGRESQL_PKG_NAME-server $POSTGRESQL_PKG_NAME-contrib > install_postgresql.log 2>&1
 
+	echo "  - exporting postgresql options"
 	echo "export PostgreSQL_ROOT=/usr/pgsql-9.3" > /etc/profile.d/postgresql.sh
 	source /etc/profile.d/postgresql.sh
 fi
 
 if $INSTALL_POSTGIS; then
-#	echo "Installing postgis dependencies"
-#	yum -y install gdal-devel geos-devel json-c-devel libxml2-devel proj-devel > install_postgis_deps.log 2>&1
-
-#	echo "Installing postgis $POSTGIS_VERSION from source"
-#	git clone -q https://github.com/postgis/postgis.git $DEPLOY_DIR/postgis-$POSTGIS_VERSION
-#	ln -sf $DEPLOY_DIR/postgis-$POSTGIS_VERSION $DEPLOY_DIR/postgis
-#	cd $DEPLOY_DIR/postgis
-#	git checkout -q $POSTGIS_VERSION > /dev/null 2>&1
-#	./configure > $WORKING_DIR/install_postgis.log 2>&1
-#	make >> $WORKING_DIR/install_postgis.log 2>&1
-#	make install >> $WORKING_DIR/install_postgis.log 2>&1
-#	cd $WORKING_DIR
+	fn_download_newer $DOWNLOAD_DIR/$ARMADILLO_FILE "$ARMADILLO_URL"
+	yum -y localinstall $DOWNLOAD_DIR/$ARMADILLO_FILE > install_armadillo.log 2>&1
 
-	echo "Installing $POSTGRESQL_PKG_NAME from repository"
-	yum -y install postgis2_93 postgis2_93-devel > install_postgis.log 2>&1
+	if [ "$POSTGIS_VERSION" == "auto" ]; then
+		echo "Installing postgis (from repository)"
+		yum -y install postgis2_93 > install_postgis.log 2>&1
+	else
+		echo "Installing postgis dependencies"
+		yum -y install gdal-devel geos-devel json-c-devel libxml2-devel proj-devel > install_postgis_deps.log 2>&1
+
+		echo "Installing postgis $POSTGIS_VERSION (from source)"
+		git clone -q "$POSTGIS_GIT_URL" $DEPLOY_DIR/postgis-$POSTGIS_VERSION
+		ln -sf $DEPLOY_DIR/postgis-$POSTGIS_VERSION $DEPLOY_DIR/postgis
+		cd $DEPLOY_DIR/postgis
+		git checkout -q $POSTGIS_VERSION > /dev/null 2>&1
+		./configure > $WORKING_DIR/install_postgis.log 2>&1
+		make >> $WORKING_DIR/install_postgis.log 2>&1
+		make install >> $WORKING_DIR/install_postgis.log 2>&1
+		cd $WORKING_DIR
+	fi
 fi
 
 if $INSTALL_POSTGRES_ADMIN; then
@@ -446,49 +535,25 @@ if $INSTALL_POSTGRES_ADMIN; then
 fi
 
 if $INSTALL_PGROUTING; then
-#	echo "Installing cmake $CMAKE_VERSION from source"
-#	fn_download_newer $DOWNLOAD_DIR/$CMAKE_FILE http://www.cmake.org/files/$CMAKE_VERSION_MAIN/$CMAKE_FILE
-#	cp $DOWNLOAD_DIR/$CMAKE_FILE $DEPLOY_DIR/$CMAKE_FILE
-#	tar -xvzf $DEPLOY_DIR/$CMAKE_FILE -C $DEPLOY_DIR > install_cmake.log 2>&1
-#	cd $DEPLOY_DIR/cmake*
-#	./bootstrap >> install_cmake.log 2>&1
-#	make >> install_cmake.log 2>&1
-#	make install >> install_cmake.log 2>&1
-#	cd $WORKSPACE_DIR
-
-	echo "Installing rpmForge repository"
-	fn_download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm $REPO_RPMFORGE
-	yum -y localinstall $DOWNLOAD_DIR/rpmforge-repo.rpm > install_rpmforge_repo.log 2>&1
-	sed -i 's/enabled = 1/enabled = 0/' $REPO_RPMFORGE_CONFIG
-
-	echo "Installing cmake from repository"
-	yum -y --enablerepo=rpmforge-extras install cmake > install_cmake.log 2>&1
-
-	echo "Installing pgRouting dependencies"
-	yum -y install $POSTGRESQL_PKG_NAME-libs boost-devel > install_pgRouting_deps.log 2>&1
-
-#	echo "Installing CGAL 4.3"
-#	fn_download_newer $DOWNLOAD_DIR/CGAL-4.3.zip https://gforge.inria.fr/frs/download.php/32996/CGAL-4.3.zip
-#	cp $DOWNLOAD_DIR/CGAL-4.3.zip $DEPLOY_DIR/CGAL-4.3.zip
-#	unzip -o -d $DEPLOY_DIR $DEPLOY_DIR/CGAL-4.3.zip > install_cgal.log 2>&1
-#	cd $DEPLOY_DIR/CGAL-4.3
-#	cmake . >> install_cgal.log 2>&1
-#	make >> install_cgal.log 2>&1
-#	make install >> install_cgal.log 2>&1
-#	cd $WORKING_DIR
-
-	echo "Installing pgRouting $PGROUTING_VERSION"
-	git clone -q https://github.com/pgRouting/pgrouting.git $DEPLOY_DIR/pgRouting-$PGROUTING_VERSION
-	ln -sf $DEPLOY_DIR/pgRouting-$PGROUTING_VERSION $DEPLOY_DIR/pgRouting
-	cd $DEPLOY_DIR/pgRouting
-	git checkout -q pgrouting-$PGROUTING_VERSION > /dev/null 2>&1
-	mkdir build
-	cd build
-#	cmake -DWITH_DD=ON  -DBoost_DIR:PATH=/usr/lib64/boost -DPOSTGRESQL_EXECUTABLE:FILEPATH="$PostgreSQL_ROOT"/bin/postgres -DPOSTGRESQL_PG_CONFIG:FILEPATH="$PostgreSQL_ROOT"/bin/pg_config .. > $WORKING_DIR/install_pgRouting.log 2>&1
-	cmake -DWITH_DD=OFF -DBoost_DIR:PATH=/usr/lib64/boost -DPOSTGRESQL_EXECUTABLE:FILEPATH="$PostgreSQL_ROOT"/bin/postgres -DPOSTGRESQL_PG_CONFIG:FILEPATH="$PostgreSQL_ROOT"/bin/pg_config .. > $WORKING_DIR/install_pgRouting.log 2>&1
-	make >> $WORKING_DIR/install_pgRouting.log 2>&1
-	make install >> $WORKING_DIR/install_pgRouting.log 2>&1
-	cd $WORKING_DIR
+	if [ "$PGROUTING_VERSION" == "auto" ]; then
+		echo "Installing pgRouting (from repository)"
+		yum -y install pgrouting_93 > install_pgRouting.log 2>&1
+	else
+		echo "Installing pgRouting dependencies"
+		yum -y install boost-devel $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-libs postgis2_93-devel > install_pgRouting_deps.log 2>&1
+
+		echo "Installing pgRouting $PGROUTING_VERSION (from source)"
+		git clone -q "$PGROUTING_GIT_URL" $DEPLOY_DIR/pgRouting-$PGROUTING_VERSION
+		ln -sf $DEPLOY_DIR/pgRouting-$PGROUTING_VERSION $DEPLOY_DIR/pgRouting
+		cd $DEPLOY_DIR/pgRouting
+		git checkout -q pgrouting-$PGROUTING_VERSION > /dev/null 2>&1
+		mkdir build
+		cd build
+		cmake -DWITH_DD=OFF -DBoost_DIR:PATH=/usr/lib64/boost -DPOSTGRESQL_EXECUTABLE:FILEPATH="$PostgreSQL_ROOT"/bin/postgres -DPOSTGRESQL_PG_CONFIG:FILEPATH="$PostgreSQL_ROOT"/bin/pg_config .. > $WORKING_DIR/install_pgRouting.log 2>&1
+		make >> $WORKING_DIR/install_pgRouting.log 2>&1
+		make install >> $WORKING_DIR/install_pgRouting.log 2>&1
+		cd $WORKING_DIR
+	fi
 fi
 
 if $INSTALL_JAVA; then
@@ -498,18 +563,19 @@ if $INSTALL_JAVA; then
 	ln -sf /usr/java/latest $DEPLOY_DIR/jdk > setup_java.log 2>&1
 	ln -sf /usr/java/latest/jre $DEPLOY_DIR/jre > setup_java.log 2>&1
 
-	echo " - setting alternatives for java"
+	echo "  - setting alternatives for java"
 	alternatives --install /usr/bin/java java $DEPLOY_DIR/jre/bin/java 200000 >> setup_java.log 2>&1
 	alternatives --install /usr/bin/javaws javaws $DEPLOY_DIR/jre/bin/javaws 200000 >> setup_java.log 2>&1
 	alternatives --set java $DEPLOY_DIR/jre/bin/java >> setup_java.log 2>&1
 	alternatives --install /usr/bin/javac javac $DEPLOY_DIR/jdk/bin/javac 200000 >> setup_java.log 2>&1
 	alternatives --install /usr/bin/jar jar $DEPLOY_DIR/jdk/bin/jar 200000 >> setup_java.log 2>&1
 
+	echo "  - exporting java options"
 	echo "export JAVA_HOME=$DEPLOY_DIR/jre" > /etc/profile.d/java.sh
 	echo "export PATH=\${JAVA_HOME}/bin:\${PATH}" >> /etc/profile.d/java.sh
 	source /etc/profile.d/java.sh
 
-	echo " - installing strong cryptographie"
+	echo "  - installing strong cryptographie"
 	fn_download_newer $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE $CACHE_DIR_REMOTE/$JAVA_CRYPTO_FILE
 	unzip -j -u $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE -d $DEPLOY_DIR/jre/lib/security >> setup_java.log 2>&1
 fi
@@ -519,29 +585,35 @@ if $INSTALL_TOMCAT; then
 #	yum -y install $TOMCAT_NAME $TOMCAT_NAME-webapps $TOMCAT_NAME-admin-webapps > install_tomcat.log 2>&1
 #	ln -sf /usr/share/$TOMCAT_NAME $DEPLOY_DIR/$TOMCAT_NAME
 
-	fn_download_newer $DOWNLOAD_DIR/$TOMCAT_FILE http://tweedo.com/mirror/apache/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/$TOMCAT_FILE
+	fn_download_newer $DOWNLOAD_DIR/$TOMCAT_FILE $TOMCAT_DOWNLOAD_URL
 	cp $DOWNLOAD_DIR/$TOMCAT_FILE $DEPLOY_DIR/$TOMCAT_FILE
 	tar -xvzf $DEPLOY_DIR/$TOMCAT_FILE -C $DEPLOY_DIR > install_tomcat.log 2>&1
 	rm -f $DEPLOY_DIR/$TOMCAT_FILE >> install_tomcat.log 2>&1
 	ln -sf $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $DEPLOY_DIR/$TOMCAT_NAME >> install_tomcat.log 2>&1
+
+	echo "  - exporting catalina options"
+	if $INSTALL_GEOSERVER; then
+		echo "export CATALINA_OPTS=\"-Djava.awt.headless=true $TOMCAT_MEMORY_OPTS -DGEOSERVER_DATA_DIR=$DEPLOY_DIR/geoserver/data\"" > /etc/profile.d/catalina.sh
+	else
+		echo "export CATALINA_OPTS=\"-Djava.awt.headless=true $TOMCAT_MEMORY_OPTS\"" > /etc/profile.d/catalina.sh
+	fi
+	source /etc/profile.d/catalina.sh
 fi
 
 if $INSTALL_GEOSERVER; then
 	echo "Installing geoserver $GEOSERVER_VERSION"
-	fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE
+	fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE $GEOSERVER_DOWNLOAD_URL
 	unzip -o -d $TOMCAT_WEBAPP_DIR $DOWNLOAD_DIR/$GEOSERVER_FILE geoserver.war > install_geoserver.log 2>&1
 
-	echo "Installing geoserver web archive into tomcat"
+	echo "  - copying web archive into tomcat"
 	mkdir -p $TOMCAT_WEBAPP_DIR/geoserver
 	unzip -o -d $TOMCAT_WEBAPP_DIR/geoserver $TOMCAT_WEBAPP_DIR/geoserver.war  >> install_geoserver.log 2>&1
 	rm -f $TOMCAT_WEBAPP_DIR/geoserver.war >> install_geoserver.log 2>&1
 
-	echo "Installing geoserver data directory"
+	echo "  - creating geoserver data directory"
 #	mkdir -p $DEPLOY_DIR/geoserver >> install_geoserver.log 2>&1
 #	mv $TOMCAT_WEBAPP_DIR/geoserver/data $DEPLOY_DIR/geoserver >> install_geoserver.log 2>&1
 	mkdir -p $DEPLOY_DIR/geoserver/data >> install_geoserver.log 2>&1
-	echo "export CATALINA_OPTS=\"-Djava.awt.headless=true $TOMCAT_MEMORY_OPTS -DGEOSERVER_DATA_DIR=$DEPLOY_DIR/geoserver/data\"" > /etc/profile.d/catalina.sh
-	source /etc/profile.d/catalina.sh
 
 	echo "Installing geoserver-shell $GEOSERVER_SHELL_VERSION"
 	fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE $CACHE_DIR_REMOTE/$GEOSERVER_SHELL_FILE
@@ -549,14 +621,11 @@ if $INSTALL_GEOSERVER; then
 	ln -sf $DEPLOY_DIR/gs-shell-0.2-SNAPSHOT $DEPLOY_DIR/gs-shell
 	make >> install_geoserver_shell.log 2>&1
 	make install >> install_geoserver_shell.log 2>&1
-else
-	echo "export CATALINA_OPTS=\"-Djava.awt.headless=true $TOMCAT_MEMORY_OPTS\"" > /etc/profile.d/catalina.sh
-	source /etc/profile.d/catalina.sh
 fi
 
 if $INSTALL_ISOCHRONE_LOCAL; then
 	echo "Installing template project \"isochrone (local testing)\""
-	echo " - creating war using gradle from $TEMPLATE_DIR_ISOCHRONE"
+	echo "  - creating war using gradle from $TEMPLATE_DIR_ISOCHRONE"
 
 	$TEMPLATE_DIR_ISOCHRONE/gradlew -b $TEMPLATE_DIR_ISOCHRONE/build.gradle -c $TEMPLATE_DIR_ISOCHRONE/settings.gradle clean war > install_isochrone_local.log 2>&1
 	unzip -o -d $TOMCAT_WEBAPP_DIR/localTesting $TEMPLATE_DIR_ISOCHRONE/build/libs/isochrone-*.war >> install_isochrone_local.log 2>&1
@@ -564,7 +633,7 @@ fi
 
 if $INSTALL_ISOCHRONE_RELEASE; then
 	echo "Installing template project \"isochrone (release)\""
-	echo " - artifact: $NEXUS_RELEASE_ISOCHRONE"
+	echo "  - artifact: $NEXUS_RELEASE_ISOCHRONE"
 
 	# we do not save this file in download dir (we do not want caching for isochrone.war)
 	fn_download $DOWNLOAD_DIR/isochrone.war $NEXUS_RELEASE_ISOCHRONE
@@ -575,7 +644,7 @@ fi
 
 if $INSTALL_ISOCHRONE_SNAPSHOT; then
 	echo "Installing template project \"isochrone (testing)\""
-	echo " - artifact: $NEXUS_SNAPSHOT_ISOCHRONE"
+	echo "  - artifact: $NEXUS_SNAPSHOT_ISOCHRONE"
 
 	# we do not save this file in download dir (we do not want caching for testing.war)
 	fn_download $DOWNLOAD_DIR/testing.war $NEXUS_SNAPSHOT_ISOCHRONE
@@ -586,7 +655,7 @@ fi
 
 if $INSTALL_PROJECT_CANIGET2; then
 	echo "Installing template project \"CanIGet2\""
-	echo " - artifact: $NEXUS_RELEASE_CANIGET2"
+	echo "  - artifact: $NEXUS_RELEASE_CANIGET2"
 
 	fn_download_newer $DOWNLOAD_DIR/caniget2.war $NEXUS_RELEASE_CANIGET2
 	cp $DOWNLOAD_DIR/caniget2.war $TOMCAT_WEBAPP_DIR
@@ -595,28 +664,28 @@ if $INSTALL_PROJECT_CANIGET2; then
 fi
 
 if $INSTALL_PROJECT_PSIPROBE; then
-	echo "Installing template project \"psi-probe\""
-	echo " - artifact: https://psi-probe.googlecode.com/files/$TEMPLATE_FILE_PSIPROBE"
+	echo "Installing template project \"psi-probe\" version $TEMPLATE_PSIPROBE_VERSION"
+	echo "  - artifact: $TEMPLATE_PSIPROBE_DOWNLOAD_URL"
 
-	fn_download_newer $DOWNLOAD_DIR/$TEMPLATE_FILE_PSIPROBE https://psi-probe.googlecode.com/files/$TEMPLATE_FILE_PSIPROBE
-	unzip $DOWNLOAD_DIR/$TEMPLATE_FILE_PSIPROBE probe.war -d $TOMCAT_WEBAPP_DIR
+	fn_download_newer $DOWNLOAD_DIR/$TEMPLATE_PSIPROBE_FILE "$TEMPLATE_PSIPROBE_DOWNLOAD_URL"
+	unzip $DOWNLOAD_DIR/$TEMPLATE_PSIPROBE_FILE probe.war -d $TOMCAT_WEBAPP_DIR
 	unzip -o -d $TOMCAT_WEBAPP_DIR/psiprobe $TOMCAT_WEBAPP_DIR/probe.war > install_psiprobe.log 2>&1
 	rm -f $TOMCAT_WEBAPP_DIR/probe.war >> install_psiprobe.log 2>&1
 fi
 
 if $INSTALL_MAVEN; then
 	echo "Installing maven $MAVEN_VERSION"
-
 	mkdir -p $CACHE_DIR_LOCAL/maven
-	fn_download_newer $DOWNLOAD_DIR/$MAVEN_FILE http://tweedo.com/mirror/apache/maven/maven-3/3.1.1/binaries/$MAVEN_FILE
+	fn_download_newer $DOWNLOAD_DIR/$MAVEN_FILE "$MAVEN_DOWNLOAD_URL"
 	unzip -o $DOWNLOAD_DIR/$MAVEN_FILE -d $DEPLOY_DIR > install_maven.log 2>&1
 	ln -sf $DEPLOY_DIR/apache-maven-$MAVEN_VERSION $DEPLOY_DIR/apache-maven
 
+	echo "  - exporting maven options"
 	echo "export M2_HOME=$DEPLOY_DIR/apache-maven" > /etc/profile.d/maven.sh
 	echo "export PATH=\${M2_HOME}/bin:\${PATH}" >> /etc/profile.d/maven.sh
 	source /etc/profile.d/maven.sh
 
-	echo "Configuring maven to use vagrant-cache plugin"
+	echo "  - configuring maven to use vagrant-cache plugin"
 #	yum -y install xmlstarlet >> install_xmlstarlet.log
 #	xmlstarlet edit --inplace --subnode "/_:settings" -t elem -n "localRepository" -v "$CACHE_DIR_LOCAL/maven" $DEPLOY_DIR/apache-maven/conf/settings.xml
 	cp $SHARED_CONF_DIR/maven-settings.xml $DEPLOY_DIR/apache-maven/conf/settings.xml
@@ -627,32 +696,39 @@ if $INSTALL_NEO4J; then
 	yum install -y lsof > install_neo4j_deps.log 2>&1
 
 	echo "Installing neo4j $NEO4J_VERSION"
-	fn_download_newer $DOWNLOAD_DIR/$NEO4J_FILE http://dist.neo4j.org/$NEO4J_FILE
+	fn_download_newer $DOWNLOAD_DIR/$NEO4J_FILE "$NEO4J_DOWNLOAD_URL"
 	tar -xvzf $DOWNLOAD_DIR/$NEO4J_FILE -C $DEPLOY_DIR > install_neo4j.log 2>&1
 	ln -sf $DEPLOY_DIR/neo4j-community-$NEO4J_VERSION $DEPLOY_DIR/neo4j
+
+	echo "  - enabling neo4j network access"
 	echo "org.neo4j.server.webserver.address=0.0.0.0" >> $DEPLOY_DIR/neo4j/conf/neo4j-server.properties
 fi
 
 if $INSTALL_NEO4J_SPATIAL; then
 	echo "Installing neo4j-spatial $NEO4J_SPATIAL_VERSION"
-	git clone -q https://github.com/neo4j/spatial.git $DEPLOY_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION
+	git clone -q "$NEO4J_SPATIAL_GIT_URL" $DEPLOY_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION
 	ln -sf $DEPLOY_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION $DEPLOY_DIR/neo4j-spatial
 	cd $DEPLOY_DIR/neo4j-spatial
 	git checkout -q $NEO4J_SPATIAL_VERSION > /dev/null 2>&1
 
 	if $INSTALL_GEOSERVER; then
-		# We need to compile the source when importing data, so that the main class gets compiled
-		echo "Installing neo4j-spatial into geoserver from source"
-		mvn clean install -DskipTests > $WORKING_DIR/install_neo4j_spatial.log 2>&1
-		unzip -o $DEPLOY_DIR/neo4j-spatial/target/*server-plugin.zip -d $TOMCAT_WEBAPP_DIR/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1
+		if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then
+			# We need to compile the source when importing data, so that the main class gets compiled
+			echo "  - copying neo4j-spatial into geoserver (from source)"
+			mvn clean install -DskipTests > $WORKING_DIR/install_neo4j_spatial.log 2>&1
+			unzip -o $DEPLOY_DIR/neo4j-spatial/target/*server-plugin.zip -d $TOMCAT_WEBAPP_DIR/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1
+		else
+			echo "  - copying neo4j-spatial into geoserver (from binary)"
+			fn_download_newer $DOWNLOAD_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip "$NEO4J_SPATIAL_PLUGIN_DOWNLOAD_URL"
+			unzip -o $DOWNLOAD_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip -d $TOMCAT_WEBAPP_DIR/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1
+		fi
 	fi
-
 	cd $WORKING_DIR
 fi
 
 if $IMPORT_OSMDATA; then
 	echo "Installing osmosis $OSMOSIS_VERSION"
-	fn_download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE
+	fn_download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE "$OSMOSIS_DOWNLOAD_URL"
 	mkdir -p $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION
 	unzip -o $DOWNLOAD_DIR/$OSMOSIS_FILE -d $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION > install_osmosis.log 2>&1
 	ln -sf $DEPLOY_DIR/osmosis-* $DEPLOY_DIR/osmosis
@@ -664,7 +740,7 @@ if ( $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED ) && $INSTALL_PGROUTING; then
 	yum install -y expat-devel boost-devel > install_osm2pgrouting_deps.log 2>&1
 
 	echo "Installing osm2pgrouting $OSM2PGROUTING_VERSION"
-	git clone -q https://github.com/pgRouting/osm2pgrouting.git $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION
+	git clone -q "$OSM2PGROUTING_GIT_URL" $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION
 	ln -sf $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION $DEPLOY_DIR/osm2pgrouting
 
 	cd $DEPLOY_DIR/osm2pgrouting
@@ -677,13 +753,18 @@ if ( $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED ) && $INSTALL_PGROUTING; then
 fi
 
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
-echo " Installations done!"
-echo " Preparing services"
+echo " Installations performed!"
+echo " Preparing services:"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+
 if $INSTALL_POSTGRES; then
-	echo "Initialize postgresql database"
-	rm -rf $POSTGRESQL_DATA_DIR
-	$PostgreSQL_ROOT/bin/postgresql93-setup initdb > initialize_postgresql.log 2>&1
+	echo "Initializing postgresql database"
+	if [ -f "$PostgreSQL_ROOT/bin/postgresql93-setup" ]; then
+		rm -rf $POSTGRESQL_DATA_DIR
+		$PostgreSQL_ROOT/bin/postgresql93-setup initdb > initialize_postgresql.log 2>&1
+	else
+		service $POSTGRESQL_SERVICE_NAME initdb > initialize_postgresql.log 2>&1
+	fi
 	sleep 2
 
 	echo "Configuring and starting postgresql-server"
@@ -699,10 +780,10 @@ if $INSTALL_POSTGRES_ADMIN; then
 fi
 
 if $INSTALL_NEO4J; then
-	echo "Initialize neo4j database"
+	echo "Initializing neo4j database"
 	$DEPLOY_DIR/neo4j/bin/neo4j -h -u $NEO4J_DB_USER install > initialize_neo4j.log 2>&1
 
-	# Configuring max open file limit for user "neo4j"
+	echo "  - setting max open file limit for neo4j user"
 	echo "$NEO4J_DB_USER    soft    nofile    40000" >> /etc/security/limits.conf
 	echo "$NEO4J_DB_USER    hard    nofile    40000" >> /etc/security/limits.conf
 	echo "session    required    pam_limits.so" >> /etc/pam.d/su
@@ -745,29 +826,25 @@ if $INSTALL_POSTGIS && $INSTALL_GEOSERVER; then
 	chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/geoserver/data/user_projections
 fi
 
-echo "Starting services"
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+echo " Services prepared!"
+echo " Starting services:"
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+
 if $INSTALL_HTTPD; then
-	service httpd start > start_httpd.log 2>&1
-	systemctl enable httpd  >> start_httpd.log 2>&1
-	chkconfig httpd on >> start_httpd.log 2>&1
+	fn_service_start "httpd"
 	sleep 2
 fi
 if $INSTALL_POSTGRES; then
-	service $POSTGRESQL_SERVICE_NAME start > start_pg.log 2>&1
-	systemctl enable $POSTGRESQL_SERVICE_NAM  >> start_pg.log 2>&1
-	chkconfig $POSTGRESQL_SERVICE_NAME on >> start_pg.log 2>&1
+	fn_service_start "$POSTGRESQL_SERVICE_NAME"
 	sleep 2
 fi
 if $INSTALL_NEO4J; then
-	service $NEO4J_SERVICE_NAME start > start_neo4j.log 2>&1
-	systemctl enable $NEO4J_SERVICE_NAME  >> start_neo4j.log 2>&1
-	chkconfig $NEO4J_SERVICE_NAME on >> start_neo4j.log 2>&1
+	fn_service_start "$NEO4J_SERVICE_NAME"
 	sleep 2
 fi
 if $INSTALL_TOMCAT; then
-	service $TOMCAT_NAME start > start_tomcat.log 2>&1
-	systemctl enable $TOMCAT_NAME  >> start_tomcat.log 2>&1
-	chkconfig $TOMCAT_NAME on >> start_tomcat.log 2>&1
+	fn_service_start "$TOMCAT_NAME"
 	sleep 2
 fi
 
@@ -792,9 +869,9 @@ if $INSTALL_PGROUTING; then
 fi
 
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
-echo " Services prepared!"
+echo " Services started!"
 if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then
-	echo " Importing data"
+	echo " Importing data:"
 	echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 
 	fn_import_data "Bolzen" "$OSM_FILE_ITALY" "$OSM_FILE_BZ_FILTERED" "$OSM_BBOX_BZ" "bz_export.sql.gz" "$TABLE_PREFIX_BZ"
@@ -844,6 +921,10 @@ if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then
 			fi
 		fi
 	fi
+
+	echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+	echo "Data imported!"
+	echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 fi
 
 # Prevent second provision (done by check at the beginning of this file)
@@ -853,6 +934,6 @@ END=$(date +%s)
 TOTAL=$(( $END - $START ))
 
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
-echo " All preparations done... box can now be used"
-echo " Bootstrapping time: $TOTAL seconds"
+echo " All preparations done... the system can now be used"
+echo " Provisioning time: $TOTAL seconds"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"