diff --git a/ameasure2/src/provisioner/MeasurementProvisioner.cpp b/ameasure2/src/provisioner/MeasurementProvisioner.cpp
index a96bda47122aafee6a2bf312f9650e9e041fe608..4395e7ba2b11f406337b8f2897c4c229f28f1222 100644
--- a/ameasure2/src/provisioner/MeasurementProvisioner.cpp
+++ b/ameasure2/src/provisioner/MeasurementProvisioner.cpp
@@ -3,12 +3,60 @@
  */
 
 #include "MeasurementProvisioner.hpp"
+#include "exception/AlibException.h"
+#include <unistd.h>
+#include <err.h>
+#include <wordexp.h>
+#include <iostream>
 
 namespace provisioner {
 
-MeasurementProvisionerResults MeasurementProvisioner::runConfiguration ( const MeasurementProvisionerConfiguration & ) {
+std::list < std::string > MeasurementProvisioner::shellExpand ( const std::string & str ) {
+	std::list < std::string > results;
+
+	wordexp_t wexp;
+
+	if ( wordexp ( str.c_str ( ), & wexp, 0 ) != 0 )
+		throw exception::AlibException ( "wordexp failed" );
+
+	for ( unsigned i = 0; i < wexp.we_wordc; ++i )
+		results.emplace_back ( wexp.we_wordv[i] );
+
+	wordfree ( & wexp );
+
+	 // if no expansion took place, notify by throwing
+	if ( ( results.size ( ) == 1 ) && ( *results.begin ( ) == str ) )
+		throw exception::AlibException ( "no expansion took place for: " + str );
+
+	return results;
+}
+
+void MeasurementProvisioner::runProvision ( const MeasurementProvision & mp, MeasurementProvisionerResults & ) {
+
+	std::list < std::string > expandedInputDataFiles;
+
+	for ( const std::string & inputDataFile : mp.inputDataFiles )
+		expandedInputDataFiles.splice ( expandedInputDataFiles.end ( ), shellExpand ( inputDataFile ) );
+
+	for ( auto & str : expandedInputDataFiles )
+		std::cout << str << std::endl;
+}
+
+MeasurementProvisionerResults MeasurementProvisioner::runConfiguration ( const MeasurementProvisionerConfiguration & cfg ) {
+
+	std::list < std::string > binariesDirectoryExpansion = shellExpand ( cfg.binariesDirectory );
+
+	if ( binariesDirectoryExpansion.size ( ) != 1 )
+		throw exception::AlibException ( "BinariesDirectory expansion failed" );
+
+	if ( chdir ( binariesDirectoryExpansion.begin ( )->c_str ( ) ) != 0 )
+		throw exception::AlibException ( "chdir to BinariesDirectory failed" );
+
 	MeasurementProvisionerResults results;
 
+	for ( const MeasurementProvision & mp : cfg.measurementProvisions )
+		runProvision ( mp, results );
+
 	return results;
 }
 
diff --git a/ameasure2/src/provisioner/MeasurementProvisioner.hpp b/ameasure2/src/provisioner/MeasurementProvisioner.hpp
index f76a3a9b9dd994a4f4a2d0153bcad07080f92de4..5d73f793fa6747c92c843e76d803d4712375a487 100644
--- a/ameasure2/src/provisioner/MeasurementProvisioner.hpp
+++ b/ameasure2/src/provisioner/MeasurementProvisioner.hpp
@@ -7,10 +7,16 @@
 
 #include "MeasurementProvisionerConfiguration.hpp"
 #include "MeasurementProvisionerResults.hpp"
+#include <list>
 
 namespace provisioner {
 
 class MeasurementProvisioner {
+
+	static std::list < std::string > shellExpand ( const std::string & );
+
+	static void runProvision ( const MeasurementProvision &, MeasurementProvisionerResults & );
+
 public:
 	static MeasurementProvisionerResults runConfiguration ( const MeasurementProvisionerConfiguration & );
 };
diff --git a/ameasure2/src/provisioner/MeasurementProvisionerConfiguration.hpp b/ameasure2/src/provisioner/MeasurementProvisionerConfiguration.hpp
index 497b4e2315c655ca12098f5640e802579837aad8..c0cbae83cb54e18f07e4d2569511f48d0d7f7e0d 100644
--- a/ameasure2/src/provisioner/MeasurementProvisionerConfiguration.hpp
+++ b/ameasure2/src/provisioner/MeasurementProvisionerConfiguration.hpp
@@ -21,9 +21,7 @@ struct MeasurementProvision {
 };
 
 struct MeasurementProvisionerConfiguration {
-	std::string workingDirectory;
 	std::string binariesDirectory;
-	std::string inputDataDirectory;
 
 	std::vector < MeasurementProvision > measurementProvisions;
 };
diff --git a/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.cpp b/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.cpp
index b082042a0c757ad69bfbf2d1b1b0bb172acc64fb..376d7c869bf908dc17c94373e7d46875048450da 100644
--- a/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.cpp
+++ b/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.cpp
@@ -33,43 +33,18 @@ void MeasurementProvisionerXmlFactory::parseMeasurementProvisioner ( Measurement
 
 		string data = FromXMLParserHelper::getTokenData ( iter, Token::TokenType::START_ELEMENT );
 
-		if ( data == DIRECTORIES_TAG )
-			parseDirectories ( mpc, iter );
-		else if ( data == MEASUREMENT_PROVISIONS_TAG )
-			parseMeasurementProvisions ( mpc, iter );
-		else
-			break;
-	}
-
-	FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, MEASUREMENT_PROVISIONER_TAG );
-}
-
-void MeasurementProvisionerXmlFactory::parseDirectories ( MeasurementProvisionerConfiguration & mpc, std::deque < sax::Token >::iterator & iter ) {
-	FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, DIRECTORIES_TAG );
-
-	for ( ; ; ) {
-		if ( !FromXMLParserHelper::isTokenType ( iter, Token::TokenType::START_ELEMENT ) ) break;
-
-		string data = FromXMLParserHelper::getTokenData ( iter, Token::TokenType::START_ELEMENT );
-
-		if ( data == WORKING_DIRECTORY_TAG ) {
-			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, WORKING_DIRECTORY_TAG );
-			mpc.workingDirectory = FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER );
-			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, WORKING_DIRECTORY_TAG );
-		} else if ( data == BINARIES_DIRECTORY_TAG ) {
+		if ( data == BINARIES_DIRECTORY_TAG ) {
 			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, BINARIES_DIRECTORY_TAG );
-			mpc.workingDirectory = FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER );
+			mpc.binariesDirectory = FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER );
 			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, BINARIES_DIRECTORY_TAG );
-		} else if ( data == INPUT_DATA_DIRECTORY_TAG ) {
-			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, INPUT_DATA_DIRECTORY_TAG );
-			mpc.workingDirectory = FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER );
-			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, INPUT_DATA_DIRECTORY_TAG );
+		} else if ( data == MEASUREMENT_PROVISIONS_TAG ) {
+			parseMeasurementProvisions ( mpc, iter );
 		} else {
 			break;
 		}
 	}
 
-	FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, DIRECTORIES_TAG );
+	FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, MEASUREMENT_PROVISIONER_TAG );
 }
 
 void MeasurementProvisionerXmlFactory::parseMeasurementProvisions ( MeasurementProvisionerConfiguration & mpc, std::deque < sax::Token >::iterator & iter ) {
@@ -165,10 +140,7 @@ void MeasurementProvisionerXmlFactory::parseMeasurementConfiguration ( Measureme
 
 string MeasurementProvisionerXmlFactory::MEASUREMENT_PROVISIONER_TAG = "MeasurementProvisioner";
 
-string MeasurementProvisionerXmlFactory::DIRECTORIES_TAG = "Directories";
-string MeasurementProvisionerXmlFactory::WORKING_DIRECTORY_TAG	= "WorkingDirectory";
 string MeasurementProvisionerXmlFactory::BINARIES_DIRECTORY_TAG = "BinariesDirectory";
-string MeasurementProvisionerXmlFactory::INPUT_DATA_DIRECTORY_TAG = "InputDataDirectory";
 
 string MeasurementProvisionerXmlFactory::MEASUREMENT_PROVISIONS_TAG = "MeasurementProvisions";
 string MeasurementProvisionerXmlFactory::MEASUREMENT_PROVISION_TAG	= "MeasurementProvision";
diff --git a/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.hpp b/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.hpp
index 5402443ed62f95b41d92622cb4d063d2e98542e7..7f22a391521cb23aed9777455eb39a9d6defc2fb 100644
--- a/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.hpp
+++ b/ameasure2/src/provisioner/MeasurementProvisionerXmlFactory.hpp
@@ -14,10 +14,7 @@ namespace provisioner {
 class MeasurementProvisionerXmlFactory {
 	static std::string MEASUREMENT_PROVISIONER_TAG;
 
-	static std::string DIRECTORIES_TAG;
-	static std::string WORKING_DIRECTORY_TAG;
 	static std::string BINARIES_DIRECTORY_TAG;
-	static std::string INPUT_DATA_DIRECTORY_TAG;
 
 	static std::string MEASUREMENT_PROVISIONS_TAG;
 	static std::string MEASUREMENT_PROVISION_TAG;
@@ -31,7 +28,6 @@ class MeasurementProvisionerXmlFactory {
 	static std::string MEASUREMENT_CONFIGURATION_TAG;
 
 	static void parseMeasurementProvisioner ( MeasurementProvisionerConfiguration &, std::deque < sax::Token >::iterator & );
-	static void parseDirectories ( MeasurementProvisionerConfiguration &, std::deque < sax::Token >::iterator & );
 	static void parseMeasurementProvisions ( MeasurementProvisionerConfiguration &, std::deque < sax::Token >::iterator & );
 
 	static void parseMeasurementProvision ( MeasurementProvisionerConfiguration &, std::deque < sax::Token >::iterator & );
diff --git a/examples2/measurements/ameasure.xml b/examples2/measurements/ameasure.xml
index 1b76c4c10a75e58c9953fb9cd3d17c80f6e1e068..f3e05f9d8282226b12a684cb852757b395104d9a 100644
--- a/examples2/measurements/ameasure.xml
+++ b/examples2/measurements/ameasure.xml
@@ -1,16 +1,11 @@
 <?xml version="1.0"?>
 <MeasurementProvisioner>
-	<Directories>
-		<WorkingDirectory>~/repositories/automata-library</WorkingDirectory>
-		<BinariesDirectory>bin-debug/</BinariesDirectory>
-		<InputDataDirectory>examples2/</InputDataDirectory>
-	</Directories>
-
+	<BinariesDirectory>~/repositories/automata-library/bin-debug</BinariesDirectory>
 	<MeasurementProvisions>
 		<MeasurementProvision>
 			<InputDataFiles>
-				<InputDataFile>../examples2/automaton/NFSM1.xml</InputDataFile>
-				<InputDataFile>../examples2/automaton/NFSM2.xml</InputDataFile>
+				<InputDataFile>~/repositories/automata-library/examples2/ameasure/*</InputDataFile>
+				<InputDataFile>~/repositories/automata-library/examples2/automaton/NFSM*.xml</InputDataFile>
 			</InputDataFiles>
 			<PipeCommands>
 				<PipeCommand>./adeterminize2</PipeCommand>