diff --git a/etc/vagrant/bootstrap.sh b/etc/vagrant/bootstrap.sh
index 853c586e002abeaacd331a67e82a4557fa3aa97b..0828cef0113080a12a9f3a52d2dfe21a13e08f96 100644
--- a/etc/vagrant/bootstrap.sh
+++ b/etc/vagrant/bootstrap.sh
@@ -14,8 +14,9 @@
 # Environment configuration
 ###########################
 
-IMPORT_DATA=true
-IMPORT_DATA_CACHED=true
+IMPORT_OSMDATA=true
+IMPORT_OSMDATA_CACHED=true
+IMPORT_SCHEDULES=true
 INSTALL_HTTPD=true
 INSTALL_GEOSERVER=true
 INSTALL_NEO4J=false
@@ -34,10 +35,11 @@ PG_DB_PASSWORD="secretPhdPassword#2013!"
 # General configuration
 ###########################
 
-CACHE_DIR=/tmp/vagrant-cache
-SHARED_DIR=/vagrant
-DOWNLOAD_DIR=$CACHE_DIR/wget
+CACHE_DIR_LOCAL=/tmp/vagrant-cache
+CACHE_DIR_REMOTE=http://www.krismer.de/files/PhD
 DEPLOY_DIR=/opt
+DOWNLOAD_DIR=$CACHE_DIR_LOCAL/wget
+SHARED_DIR=/vagrant
 
 CMAKE_VERSION=2.8.12.1
 CMAKE_VERSION_MAIN=v2.8
@@ -90,10 +92,10 @@ INSTALL_MAVEN=false
 START=$(date +%s)
 WORKING_DIR=`pwd`
 
-if $INSTALL_NEO4J_SPATIAL && $IMPORT_DATA; then
-	INSTALL_MAVEN=true
+if $INSTALL_NEO4J_SPATIAL; then
+	INSTALL_MAVEN=$IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED
 fi
-if $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_DATA; then
+if $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then
 	INSTALL_JAVA=true
 fi
 if $INSTALL_PGROUTING; then
@@ -118,7 +120,7 @@ fi
 ############
 
 # "wget -N" does not work with "-O" option... so we use a workaround here
-download_newer()
+fn_download_newer()
 {
 	FILE=$1
 	URL=$2
@@ -130,6 +132,57 @@ download_newer()
 	fi
 }
 
+fn_import_data()
+{
+	NAME=$1
+	OSM_FILE=$2
+	OSM_FILE_FILTERED=$3
+	BBOX=$4
+	SCHEDULE_FILE=$5
+	TABLE_PREFIX=$6
+
+	echo "Importing data for region of $NAME"
+	if $IMPORT_OSMDATA_CACHED; then
+		echo "  - downloading cached OpenStreetMap file"
+		fn_download_newer $DOWNLOAD_DIR/$OSM_FILE_FILTERED $CACHE_DIR_REMOTE/$OSM_FILE_FILTERED
+		cp $DOWNLOAD_DIR/$OSM_FILE_FILTERED $DEPLOY_DIR/$OSM_FILE_FILTERED > /dev/null 2>&1
+	fi
+
+	if [ ! -f $DEPLOY_DIR/$OSM_FILE_FILTERED ]; then
+		echo "  - downloading OpenStreetMap file"
+		fn_download_newer $DOWNLOAD_DIR/$OSM_FILE http://download.geofabrik.de/europe/$OSM_FILE
+
+		echo "  - filtering OpenStreetMap data"
+		$DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$DOWNLOAD_DIR/$OSM_FILE" --bounding-box $BBOX --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_FILTERED" >> initialize_osm_data.sh 2>&1
+	fi
+
+	if $INSTALL_POSTGIS && $IMPORT_SCHEDULES; then
+		if [ -n "$SCHEDULE_FILE" ]; then
+			echo "  - downloading schedule"
+			fn_download_newer $DOWNLOAD_DIR/$SCHEDULE_FILE $CACHE_DIR_REMOTE/$SCHEDULE_FILE
+			cp $DOWNLOAD_DIR/$SCHEDULE_FILE $DEPLOY_DIR/$SCHEDULE_FILE > /dev/null 2>&1
+
+			echo "  - importing schedule into postgis database"
+			gunzip -c $DEPLOY_DIR/$SCHEDULE_FILE | sudo -u postgres psql $PG_DB_NAME >> $WORKING_DIR/import_schedule.log 2>&1
+		fi
+	fi
+
+	if $INSTALL_PGROUTING; then
+		echo "  - importing filtered OpenStreetMap data into pgRouting"
+		$DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_FILTERED" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX >> import_osm2pgrouting.log 2>&1
+
+		echo "  - creating pgRouting topology"
+		sudo -u postgres psql -d $PG_DB_NAME -c "SELECT pgr_createTopology('${TABLE_PREFIX}_ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1
+	fi
+
+	if $INSTALL_NEO4J_SPATIAL; then
+		echo "  - importing filtered OpenStreetMap data into neo4j-spatial"
+		cd $DEPLOY_DIR/neo4j-spatial
+		mvn exec:java -Dexec.mainClass=org.neo4j.gis.spatial.osm.OSMImporter -Dexec.args="$DEPLOY_DIR/neo4j/data/graph.db $DEPLOY_DIR/$OSM_FILE_FILTERED" >> $WORKING_DIR/import_osm2neo4j.log 2>&1
+		cd $WORKING_DIR
+	fi
+}
+
 ## Start of environment preparation
 ###################################
 
@@ -137,7 +190,11 @@ echo ""
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 echo " Bootstrapping the VM:"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
-echo "Installing the following:"
+if $IMPORT_SCHEDULES && ! $IMPORT_OSMDATA && ! $IMPORT_OSMDATA_CACHED; then
+	echo "Warning: Schedules will not be imported, since no data from OSM is imported!"
+	IMPORT_SCHEDULES=false
+fi
+echo "Installing software:"
 if $INSTALL_HTTPD; then echo "  - apache webserver"; fi
 if $INSTALL_MAVEN; then echo "  - apache maven $MAVEN_VERSION"; fi
 if $INSTALL_JAVA; then echo "  - java $JAVA_VERSION"; fi
@@ -148,8 +205,11 @@ if $INSTALL_POSTGIS; then echo "  - postgis 2"; fi
 if $INSTALL_PGROUTING; then echo "  - pgRouting $PGROUTING_VERSION"; fi
 if $INSTALL_GEOSERVER; then echo "  - tomcat $TOMCAT_VERSION"; fi
 if $INSTALL_POSTGRES_ADMIN; then echo "  - phpPgAdmin"; fi
-if $IMPORT_DATA; then echo "  - osmosis $OSMOSIS_VERSION"; fi
-if $IMPORT_DATA_CACHED; then echo "Importing cached OSM data (if possible)"; elif $IMPORT_DATA; then echo "Importing data from OSM"; fi
+if $IMPORT_OSMDATA; then echo "  - osmosis $OSMOSIS_VERSION"; fi
+if $IMPORT_OSMDATA_CACHED; then echo "Importing cached data from OSM (if possible)"; elif $IMPORT_OSMDATA; then echo "Importing data from OSM"; fi
+if $IMPORT_SCHEDULES; then echo "Importing schedules"; fi
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+echo " Performing installations:"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 
 # Are we punching above our weight?
@@ -173,11 +233,11 @@ if $INSTALL_POSTGRES; then
 	fi
 
 	echo "Installing postgresql-9.3 repository"
-	download_newer $DOWNLOAD_DIR/postgresql-repo.rpm $POSTGRESQL_REPO_RPM
+	fn_download_newer $DOWNLOAD_DIR/postgresql-repo.rpm $POSTGRESQL_REPO_RPM
 	yum -y localinstall $DOWNLOAD_DIR/postgresql-repo.rpm > install_postgresql_repo.log 2>&1
 
 	echo "Installing epel repository"
-	download_newer $DOWNLOAD_DIR/epel-repo.rpm http://fedora.aau.at/epel/6/i386/epel-release-6-8.noarch.rpm
+	fn_download_newer $DOWNLOAD_DIR/epel-repo.rpm http://fedora.aau.at/epel/6/i386/epel-release-6-8.noarch.rpm
 	yum -y localinstall $DOWNLOAD_DIR/epel-repo.rpm > install_epel_repo.log 2>&1
 fi
 
@@ -211,7 +271,7 @@ if $INSTALL_POSTGIS; then
 #	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 $POSTGIS_VERSION > /dev/null 2>&1
+#	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
@@ -228,7 +288,7 @@ fi
 
 if $INSTALL_PGROUTING; then
 #	echo "Installing cmake $CMAKE_VERSION from source"
-#	download_newer $DOWNLOAD_DIR/$CMAKE_FILE http://www.cmake.org/files/$CMAKE_VERSION_MAIN/$CMAKE_FILE
+#	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*
@@ -237,18 +297,26 @@ if $INSTALL_PGROUTING; then
 #	make install >> install_cmake.log 2>&1
 #	cd $WORKSPACE_DIR
 
-	echo "Install rpmForge repository"
-	download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
+	echo "Installing rpmForge repository"
+	fn_download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
 	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
-fi
 
-if $INSTALL_PGROUTING; then
 	echo "Installing pgRouting dependencies"
-	yum -y install $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-libs postgis2_93-devel > install_pgRouting_deps.log 2>&1
+	yum -y install $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-libs boost-devel postgis2_93-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
@@ -257,7 +325,8 @@ if $INSTALL_PGROUTING; then
 	git checkout -q pgrouting-$PGROUTING_VERSION > /dev/null 2>&1
 	mkdir build
 	cd build
-	cmake -DWITH_DD=ON .. > $WORKING_DIR/install_pgRouting.log 2>&1
+#	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
@@ -269,7 +338,7 @@ if $INSTALL_GEOSERVER; then
 	ln -sf /usr/share/$TOMCAT_PKG_NAME $DEPLOY_DIR/$TOMCAT_PKG_NAME
 
 	echo "Installing geoserver $GEOSERVER_VERSION"
-	download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE
+	fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE
 	unzip -o -d $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps $DOWNLOAD_DIR/$GEOSERVER_FILE geoserver.war > install_geoserver.log 2>&1
 	echo "CATALINA_OPTS=\"-Djava.awt.headless=true -DGEOSERVER_DATA_DIR=$DEPLOY_DIR/geoserver/data_dir\"" >> /usr/share/$TOMCAT_PKG_NAME/conf/tomcat.conf
 	mkdir -p $DEPLOY_DIR/geoserver/data_dir
@@ -279,7 +348,7 @@ if $INSTALL_GEOSERVER; then
 	unzip $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver.war -d $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver >> install_geoserver.log 2>&1
 
 	echo "Installing geoserver-shell $GEOSERVER_SHELL_VERSION"
-	download_newer $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE http://www.krismer.de/files/$GEOSERVER_SHELL_FILE
+	fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE $CACHE_DIR_REMOTE/$GEOSERVER_SHELL_FILE
 	unzip $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE -d $DEPLOY_DIR > install_geoserver_shell.log 2>&1
 	ln -sf $DEPLOY_DIR/gs-shell-0.2-SNAPSHOT $DEPLOY_DIR/gs-shell
 	make >> install_geoserver_shell.log 2>&1
@@ -288,7 +357,7 @@ fi
 
 if $INSTALL_JAVA; then
 	echo "Installing java (oracle jdk-$JAVA_VERSION)"
-	download_newer $DOWNLOAD_DIR/$JAVA_FILE http://www.krismer.de/files/$JAVA_FILE
+	fn_download_newer $DOWNLOAD_DIR/$JAVA_FILE $CACHE_DIR_REMOTE/$JAVA_FILE
 	yum -y localinstall $DOWNLOAD_DIR/$JAVA_FILE > install_java.log 2>&1
 	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
@@ -303,8 +372,8 @@ fi
 
 if $INSTALL_MAVEN; then
 	echo "Installing maven $MAVEN_VERSION"
-	mkdir -p $CACHE_DIR/maven
-	download_newer $DOWNLOAD_DIR/$MAVEN_FILE http://tweedo.com/mirror/apache/maven/maven-3/3.1.1/binaries/$MAVEN_FILE
+	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
 	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
 
@@ -314,7 +383,7 @@ if $INSTALL_MAVEN; then
 
 	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/maven" $DEPLOY_DIR/apache-maven/conf/settings.xml
+#	xmlstarlet edit --inplace --subnode "/_:settings" -t elem -n "localRepository" -v "$CACHE_DIR_LOCAL/maven" $DEPLOY_DIR/apache-maven/conf/settings.xml
 	cp $SHARED_DIR/maven-settings.xml $DEPLOY_DIR/apache-maven/conf/settings.xml
 fi
 
@@ -323,7 +392,7 @@ if $INSTALL_NEO4J; then
 	yum install -y lsof > install_neo4j_deps.log 2>&1
 
 	echo "Installing neo4j $NEO4J_VERSION"
-	download_newer $DOWNLOAD_DIR/$NEO4J_FILE http://dist.neo4j.org/$NEO4J_FILE
+	fn_download_newer $DOWNLOAD_DIR/$NEO4J_FILE http://dist.neo4j.org/$NEO4J_FILE
 	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 "org.neo4j.server.webserver.address=0.0.0.0" >> $DEPLOY_DIR/neo4j/conf/neo4j-server.properties
@@ -337,49 +406,49 @@ if $INSTALL_NEO4J_SPATIAL; then
 	git checkout -q $NEO4J_SPATIAL_VERSION  > /dev/null 2>&1
 
 	if $INSTALL_GEOSERVER; then
-		if $IMPORT_DATA; then
+		if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then
 			# We need to compile the source when importing data, so that the main class gets compiled
-			echo "Installing neo4-spatial into geoserver from source"
+			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 $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1
 		else
-			echo "Installing neo4-spatial into geoserver from binary"
-			download_newer $DOWNLOAD_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip http://dist.neo4j.org.s3.amazonaws.com/spatial/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip
+			echo "Installing neo4j-spatial into geoserver from binary"
+			fn_download_newer $DOWNLOAD_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip http://dist.neo4j.org.s3.amazonaws.com/spatial/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip
 			unzip -o $DOWNLOAD_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip -d $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1
 		fi
 	fi
 	cd $WORKING_DIR
 fi
 
-if $IMPORT_DATA; then
+if $IMPORT_OSMDATA; then
 	echo "Installing osmosis $OSMOSIS_VERSION"
-	download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE
+	fn_download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE
 	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
 	chmod a+x $DEPLOY_DIR/osmosis/bin/osmosis
+fi
 
-	if $INSTALL_PGROUTING; then
-		echo "Installing osm2pgrouting dependencies"
-		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
-		ln -sf $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION $DEPLOY_DIR/osm2pgrouting
-		cd $DEPLOY_DIR/osm2pgrouting
-		git checkout -q $OSM2PGROUTING_VERSION > /dev/null 2>&1
-		cmake -H. -Bbuild > $WORKING_DIR/install_osm2pgrouting.log 2>&1
-		cd build/
-		make >> $WORKING_DIR/install_osm2pgrouting.log 2>&1
-		make install >> $WORKING_DIR/install_osm2pgrouting.log 2>&1
-		cd $WORKING_DIR
-	fi
+if ( $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED ) && $INSTALL_PGROUTING; then
+	echo "Installing osm2pgrouting dependencies"
+	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
+	ln -sf $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION $DEPLOY_DIR/osm2pgrouting
+	cd $DEPLOY_DIR/osm2pgrouting
+	git checkout -q $OSM2PGROUTING_VERSION > /dev/null 2>&1
+	cmake -H. -Bbuild > $WORKING_DIR/install_osm2pgrouting.log 2>&1
+	cd build/
+	make >> $WORKING_DIR/install_osm2pgrouting.log 2>&1
+	make install >> $WORKING_DIR/install_osm2pgrouting.log 2>&1
+	cd $WORKING_DIR
 fi
 
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 echo " Installations done!"
+echo " Preparing services"
 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
-
 if $INSTALL_POSTGRES; then
 	echo "Initialize postgresql database"
 	service $POSTGRESQL_SERVICE_NAME initdb > initialize_postgresql.log 2>&1
@@ -408,10 +477,10 @@ if $INSTALL_NEO4J; then
 fi
 
 if $INSTALL_GEOSERVER; then
-	echo "Configuring tomcat"
+	echo "Configuring tomcat users"
 	cp $SHARED_DIR/tomcat-users.xml /usr/share/$TOMCAT_PKG_NAME/conf/tomcat-users.xml
 
-	echo "Setting permissions"
+	echo "Configuring tomcat permissions"
 	chown -R tomcat:tomcat $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver
 	chown -R tomcat:tomcat $DEPLOY_DIR/geoserver
 fi
@@ -434,36 +503,6 @@ if $INSTALL_GEOSERVER; then
 	chkconfig $TOMCAT_SERVICE_NAME on >> start_tomcat.log 2>&1
 fi
 
-echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
-echo " Services prepared!"
-echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
-
-if $IMPORT_DATA; then
-	if $IMPORT_DATA_CACHED; then
-		echo "Downloading cached OpenStreetMap file (ibk)"
-		download_newer $DOWNLOAD_DIR/$OSM_FILE_IBK http://www.krismer.de/files/$OSM_FILE_IBK
-		cp $DOWNLOAD_DIR/$OSM_FILE_IBK $DEPLOY_DIR/$OSM_FILE_IBK > /dev/null 2>&1
-
-		echo "Downloading cached OpenStreetMap file (bz)"
-		download_newer $DOWNLOAD_DIR/$OSM_FILE_BZ http://www.krismer.de/files/$OSM_FILE_BZ
-		cp $DOWNLOAD_DIR/$OSM_FILE_BZ $DEPLOY_DIR/$OSM_FILE_BZ > /dev/null 2>&1
-	fi
-	if [ ! -f $DEPLOY_DIR/$OSM_FILE_BZ ]; then
-		echo "Downloading OpenStreetMap file (bz)"
-		download_newer $DOWNLOAD_DIR/$OSM_FILE_ITALY http://download.geofabrik.de/europe/$OSM_FILE_ITALY
-
-		echo "Filtering OpenStreetMap data (bz)"
-		$DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$DOWNLOAD_DIR/$OSM_FILE_ITALY" --bounding-box $OSM_BBOX_BZ --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_BZ" >> initialize_osm_data.sh 2>&1
-	fi
-	if [ ! -f $DEPLOY_DIR/$OSM_FILE_IBK ]; then
-		echo "Downloading OpenStreetMap file (ibk)"
-		download_newer $DOWNLOAD_DIR/$OSM_FILE_AUSTRIA http://download.geofabrik.de/europe/$OSM_FILE_AUSTRIA
-
-		echo "Filtering OpenStreetMap data"
-		$DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$DOWNLOAD_DIR/$OSM_FILE_AUSTRIA" --bounding-box $OSM_BBOX_IBK --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_IBK" >> initialize_osm_data.sh 2>&1
-	fi
-fi
-
 if $INSTALL_POSTGRES; then
 	echo "Creating postgresql database $PG_DB_NAME"
 	sudo -u postgres psql -d template1 -c "CREATE DATABASE $PG_DB_NAME;" > $WORKING_DIR/setup_database.log 2>&1
@@ -480,33 +519,21 @@ if $INSTALL_PGROUTING; then
 	sudo -u postgres psql -d $PG_DB_NAME -c "CREATE EXTENSION pgRouting;" >> $WORKING_DIR/setup_database.log 2>&1
 fi
 
-if $IMPORT_DATA && $INSTALL_PGROUTING; then
-	echo "Importing filtered OpenStreetMap data into pgRouting database"
-	$DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_BZ" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX_BZ > import_osm2pgrouting.log 2>&1
-	$DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_IBK" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX_IBK > import_osm2pgrouting.log 2>&1
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+echo " Services prepared!"
+if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then
+	echo " Importing data"
+	echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 
-	echo "Creating pgRouting topology"
-	sudo -u postgres psql -d $PG_DB_NAME -c "SELECT pgr_createTopology('bz_ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1
-	sudo -u postgres psql -d $PG_DB_NAME -c "SELECT pgr_createTopology('ibk_ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1
-fi
+	fn_import_data "Bozen" "$OSM_FILE_ITALY" "$OSM_FILE_BZ" "$OSM_BBOX_BZ" "bz_export.sql.gz" $TABLE_PREFIX_BZ
+	fn_import_data "Innsbruck" "$OSM_FILE_AUSTRIA" "$OSM_FILE_IBK" "$OSM_BBOX_IBK" "" $TABLE_PREFIX_IBK
 
-if $IMPORT_DATA && $INSTALL_NEO4J_SPATIAL; then
-	echo "Importing filtered OpenStreetMap data into neo4j-spatial database"
-	cd $DEPLOY_DIR/neo4j-spatial
-	mvn exec:java -Dexec.mainClass=org.neo4j.gis.spatial.osm.OSMImporter -Dexec.args="$DEPLOY_DIR/neo4j/data/graph.db $DEPLOY_DIR/$OSM_FILE_IBK" >> $WORKING_DIR/import_osm2neo4j.log 2>&1
-	mvn exec:java -Dexec.mainClass=org.neo4j.gis.spatial.osm.OSMImporter -Dexec.args="$DEPLOY_DIR/neo4j/data/graph.db $DEPLOY_DIR/$OSM_FILE_BZ" >> $WORKING_DIR/import_osm2neo4j.log 2>&1
 	if $INSTALL_GEOSERVER; then
-		echo "Setting permissions for neo4j data"
-		chown -R tomcat:tomcat $DEPLOY_DIR/neo4j/data/graph.db
-	fi
-	cd $WORKING_DIR
-fi
-
-if $INSTALL_GEOSERVER; then
-	echo "Starting geoserver $GEOSERVER_VERSION"
-	JAVA_HOME=$DEPLOY_DIR/jre GEOSERVER_HOME=$DEPLOY_DIR/geoserver $DEPLOY_DIR/geoserver/bin/startup.sh > start_geoserver.log 2>&1 &
+		if $INSTALL_NEO4J_SPATIAL; then
+			echo "Configuring neo4j data permissions for geoserver"
+			chown -R tomcat:tomcat $DEPLOY_DIR/neo4j/data/graph.db
+		fi
 
-	if $INSTALL_NEO4J_SPATIAL || $INSTALL_POSTGIS; then
 		echo "Configuring geoserver $GEOSERVER_VERSION using geoserver-shell $GEOSERVER_SHELL_VERSION"
 		sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_DIR/geoserver_setup_workspace.gs > setup_geoserver_workspace.log 2>&1
 		if $INSTALL_NEO4J_SPATIAL; then
@@ -521,7 +548,7 @@ fi
 END=$(date +%s)
 TOTAL=$(( $END - $START ))
 
-echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 echo " All preparations done... box can now be used"
 echo " Bootstrapping time: $TOTAL seconds"
-echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"