diff --git a/bootstrap.sh b/bootstrap.sh
index ed99e49f342c7f18fb698949de7fe908c4a39fe8..3045b86f7ae57630a75b9e33823dad228603e0e3 100644
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -10,8 +10,7 @@
 #   - pgRouting
 #   - osmosis
 #   - osm2pgrouting
-# into a centos6 (32bit, 64bit) or centos7 (64bit only) environment
-# (fedora 20 might also work - in 32bit or 64bit versions - but is untested)
+# into a centos6 (32bit and 64bit) or centos7 (64bit only) environment
 #
 # It can be used in the context of a Vagrantfile to configure a vagrant box and all
 # the installations can be configured using global variables (some packages are only
@@ -44,6 +43,7 @@ INSTALL_HTTPD=true
 INSTALL_ISOCHRONE_LOCAL=false # installs isochrone from vagrant start directory (eclipse project)
 INSTALL_ISOCHRONE_RELEASE=true # installs latest isochrone release from nexus repository
 INSTALL_ISOCHRONE_SNAPSHOT=true # installs latest isochrone snapshot from nexus repository
+INSTALL_ISOCHRONE_TOOLS=true # installs latest isochrone tools from nexus repository
 INSTALL_NEO4J=false
 INSTALL_NEO4J_SPATIAL=false
 INSTALL_PGROUTING=false
@@ -101,7 +101,7 @@ WORKING_DIR=`pwd`
 
 #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"
+ARMADILLO_URL="$CACHE_DIR_REMOTE/$ARMADILLO_FILE"
 GEOSERVER_VERSION="2.6.2"
 GEOSERVER_FILE="geoserver-$GEOSERVER_VERSION-war.zip"
 GEOSERVER_DOWNLOAD_URL="http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE"
@@ -111,11 +111,11 @@ JAVA_VERSION="8u31"
 JAVA_FILE_32="jdk-$JAVA_VERSION-linux-i586.rpm"
 JAVA_FILE_64="jdk-$JAVA_VERSION-linux-x64.rpm"
 JAVA_CRYPTO_FILE="jce_policy-8.zip"
-MAVEN_VERSION="3.2.2"
+MAVEN_VERSION="3.2.5"
 MAVEN_FILE="apache-maven-$MAVEN_VERSION-bin.zip"
 MAVEN_DOWNLOAD_URL="http://tweedo.com/mirror/apache/maven/maven-3/$MAVEN_VERSION/binaries/$MAVEN_FILE"
 NEO4J_DB_USER="neo4j"
-NEO4J_VERSION="2.1.6"
+NEO4J_VERSION="2.1.7"
 NEO4J_FILE="neo4j-community-$NEO4J_VERSION-unix.tar.gz"
 NEO4J_DOWNLOAD_URL="http://dist.neo4j.org/$NEO4J_FILE"
 NEO4J_SERVICE_NAME="neo4j-service"
@@ -123,12 +123,14 @@ 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_ARTIFACT_NAME_TOOLS="isochrone-tools"
 NEXUS_BASE_URL="http://138.232.66.78/nexus"
 NEXUS_PUBLIC_REPO="isochrone"
 #NEXUS_PUBLIC_REPO="public"
 NEXUS_RELEASE_ISOCHRONE="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=RELEASE&p=war"
 #NEXUS_RELEASE_ISOCHRONE="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=0.2.2&p=war"
 NEXUS_SNAPSHOT_ISOCHRONE="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=LATEST&p=war"
+NEXUS_SNAPSHOT_ISOCHRONE_TOOLS="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME_TOOLS&v=LATEST&c=static&p=jar"
 NEXUS_YUM_REPO="http://www.krismer.de/files/krismer.repo"
 #OSM_BBOX_BZ="top=46.5200 left=11.3000 bottom=46.4500 right=11.3873"
 #OSM_BBOX_IBK="top=47.3592 left=11.3020 bottom=47.2108 right=11.4554"
@@ -155,7 +157,7 @@ OSMOSIS_FILE="osmosis-$OSMOSIS_VERSION.zip"
 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
+#POSTGIS_VERSION="2.1.5"    # activate to install from source
 POSTGRESQL_DATA_DIR="/var/lib/pgsql/data"
 POSTGRESQL_SERVICE_NAME="postgresql"
 POSTGRESQL_SHORT_VERSION=""
@@ -165,12 +167,12 @@ PGROUTING_VERSION="auto"      # activate to install from repository
 #PGROUTING_VERSION="2.0.0"    # activate to install from source
 REPO_ELGIS="none"
 REPO_EPEL="none"
-REPO_POSTGRESQL=""            # will be set later (depending on architecture)
+REPO_POSTGRESQL="none"        # will be set later (depending on architecture)
 REPO_POSTGRESQL_32="auto"
 REPO_POSTGRESQL_64="auto"
-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="none"          # will be set later (depending on architecture)
+REPO_RPMFORGE_32="auto"
+REPO_RPMFORGE_64="auto"
 REPO_RPMFORGE_CONFIG="/etc/yum.repos.d/rpmforge.repo"
 SELINUX_CONFIG="/etc/selinux/config"
 TABLE_PREFIX_BZ="bz_"
@@ -182,7 +184,7 @@ 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.18"
+TOMCAT_VERSION="8.0.20"
 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"
@@ -207,7 +209,7 @@ fi
 
 DISTRI_NAME=$(cat "$DISTRI_FILE" | head -n 1)
 DISTRI_SUPPORTED=false
-DISTRI_TYPE="Fedora 20"
+DISTRI_TYPE=""
 DISTRI=$(printf "$DISTRI_NAME" | cut -d " " -f 1)
 if [ "$DISTRI" == "CentOS" ]; then
 	POSTGRESQL_SHORT_VERSION="94"
@@ -218,23 +220,21 @@ if [ "$DISTRI" == "CentOS" ]; then
 		REPO_EPEL="http://mirror.vutbr.cz/epel/6/i386/epel-release-6-8.noarch.rpm"
 		REPO_POSTGRESQL_32="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-6-i386/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm"
 		REPO_POSTGRESQL_64="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-6-x86_64/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm"
+		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"
 		DISTRI_SUPPORTED=true
 	elif printf "$DISTRI_NAME" | egrep -q " 7." ; then
 		DISTRI_TYPE="CentOS 7"
-		ARMADILLO_FILE=""
+		ARMADILLO_FILE="none"
 		REPO_EPEL="http://mirror.vutbr.cz/epel/7/x86_64/e/epel-release-7-5.noarch.rpm"
 		REPO_POSTGRESQL_64="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-7-x86_64/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm"
 		REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm"
 		DISTRI_SUPPORTED=$IS_64_BIT
 	fi
-elif [ "$DISTRI" == "Fedora"]; then
-	if echo $DISTRI_NAME | egrep -q " 20 (Heisenbug)" ; then
-		DISTRI_SUPPORTED=true
-	fi
 fi
 
 if ! $DISTRI_SUPPORTED; then
-	echo "Unsupported OS. Only CentOS 6, CentOS 7 (64bit) and Fedora 20 are supported!"
+	echo "Unsupported OS. Only CentOS 6 (32bit and 64bit) and CentOS 7 (64bit) are supported!"
 	exit 1;
 fi
 
@@ -263,7 +263,7 @@ fi
 if $INSTALL_NEO4J_SPATIAL; then
 	INSTALL_MAVEN=$IMPORT_DATA_OSM || $IMPORT_DATA_OSM_CACHED
 fi
-if $INSTALL_TOMCAT || $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_DATA_OSM; then
+if $INSTALL_ISOCHRONE_TOOLS || $INSTALL_TOMCAT || $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_DATA_OSM; then
 	INSTALL_JAVA=true
 fi
 if $INSTALL_PGROUTING; then
@@ -528,9 +528,6 @@ echo " Bootstrapping the VM:"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 echo "Operating system $DISTRI_NAME"
 echo "  - osType: $DISTRI_TYPE"
-if [ "$DISTRI_TYPE" == "Fedora 20" ]; then
-	echo "  - using untested operating system!!"
-fi
 if $IS_LOCAL_TEST_DEPLOY; then echo "Starting in local test deploy mode"; fi
 echo "Installing software:"
 if $INSTALL_HTTPD; then echo "  - apache webserver"; fi
@@ -562,6 +559,7 @@ if $IMPORT_SCHEDULES; then echo "Importing schedules"; fi
 if $INSTALL_ISOCHRONE_LOCAL; then echo "Importing project \"isochrone (local testing)\""; fi
 if $INSTALL_ISOCHRONE_RELEASE; then echo "Importing project \"isochrone (release)\""; fi
 if $INSTALL_ISOCHRONE_SNAPSHOT; then echo "Importing project \"isochrone (testing)\""; fi
+if $INSTALL_ISOCHTONE_TOOLS; then echo "Importing project \"isochrone-tools\""; fi
 if $INSTALL_PROJECT_PSIPROBE; then echo "Importing project \"psi-probe\""; fi
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 echo " Performing installations:"
@@ -586,7 +584,7 @@ if $INSTALL_POSTGRES; then
 fi
 
 if $INSTALL_POSTGIS; then
-	if [ "$ARMADILLO_FILE" != "" ]; then
+	if [ "$ARMADILLO_FILE" != "none" ]; then
 		fn_download_newer $DOWNLOAD_DIR/$ARMADILLO_FILE "$ARMADILLO_URL"
 		yum -y localinstall $DOWNLOAD_DIR/$ARMADILLO_FILE >> install_armadillo.log 2>&1
 	fi
@@ -726,7 +724,6 @@ if $INSTALL_ISOCHRONE_RELEASE; then
 	echo "Installing template project \"isochrone (release)\""
 	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
 	cp $DOWNLOAD_DIR/isochrone.war $TOMCAT_WEBAPP_DIR/isochrone.war
 	unzip -o -d $TOMCAT_WEBAPP_DIR/isochrone $TOMCAT_WEBAPP_DIR/isochrone.war >> install_isochrone_release.log 2>&1
@@ -737,13 +734,19 @@ if $INSTALL_ISOCHRONE_SNAPSHOT; then
 	echo "Installing template project \"isochrone (testing)\""
 	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
 	cp $DOWNLOAD_DIR/testing.war $TOMCAT_WEBAPP_DIR/testing.war
 	unzip -o -d $TOMCAT_WEBAPP_DIR/testing $TOMCAT_WEBAPP_DIR/testing.war >> install_isochrone_snapshot.log 2>&1
 	rm -f $TOMCAT_WEBAPP_DIR/testing.war >> install_isochrone_snapshot.log 2>&1
 fi
 
+if $INSTALL_ISOCHRONE_TOOLS; then
+	echo "Installing \"isochrone-tools\""
+	echo "  - artifact: $NEXUS_SNAPSHOT_ISOCHRONE_TOOLS"
+
+	fn_download $DOWNLOAD_DIR/isochrone-tools.jar $NEXUS_SNAPSHOT_ISOCHRONE_TOOLS
+fi
+
 if $INSTALL_PROJECT_PSIPROBE; then
 	echo "Installing template project \"psi-probe\" version $TEMPLATE_PSIPROBE_VERSION"
 	echo "  - artifact: $TEMPLATE_PSIPROBE_DOWNLOAD_URL"
@@ -952,6 +955,7 @@ if $IMPORT_DATA; then
 	echo " Importing data:"
 	echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 
+	# Import real world datasets
 	fn_import_data "Bozen" "$OSM_FILE_ITALY" "$OSM_FILE_BZ_FILTERED" "$OSM_BBOX_BZ" "bz_export.sql.gz" "$TABLE_PREFIX_BZ"
 	fn_import_data "Innsbruck" "$OSM_FILE_AUSTRIA" "$OSM_FILE_IBK_FILTERED" "$OSM_BBOX_IBK" "" "$TABLE_PREFIX_IBK"
 	fn_import_data "San Francisco" "$OSM_FILE_CALIFORNIA" "$OSM_FILE_SF_FILTERED" "$OSM_BBOX_SF" "sf_export.sql.gz" $TABLE_PREFIX_SF
@@ -960,6 +964,12 @@ if $IMPORT_DATA; then
 #		fn_import_data "Alto Adige" "$OSM_FILE_ITALY" "$OSM_FILE_ST_FILTERED" "$OSM_BBOX_ST" "st_export.sql.gz" $TABLE_PREFIX_ST
 #	fi
 
+	# Generate synthetic data
+	if $INSTALL_POSTGIS && $INSTALL_ISOCHRONE_TOOLS; then
+		java -cp $DOWNLOAD_DIR/isochrone-tools.jar at.uibk.dbis.isochrone.generator.GridNetworkGenerator -d 100 -l 60 > "$WORKING_DIR/generate_gridNetwork.log" 2>&1
+		java -cp $DOWNLOAD_DIR/isochrone-tools.jar at.uibk.dbis.isochrone.generator.SpiderNetworkGenerator -d 6 -lvl 1000 -l 60 > "$WORKING_DIR/generate_spiderNetwork.log" 2>&1
+	fi
+
 	if $INSTALL_GEOSERVER; then
 		if $INSTALL_NEO4J_SPATIAL; then
 			echo "Configuring neo4j data permissions for geoserver"