Index: libcfa/src/parseconfig.cfa
===================================================================
--- libcfa/src/parseconfig.cfa	(revision 75824581a6c56a13739927bffd57f0a7c6f3b841)
+++ libcfa/src/parseconfig.cfa	(revision 58ebd786563c5b45bf5b0fa563869710e1f84198)
@@ -7,21 +7,19 @@
 	* [ char *, char * ] data;
 };
-void ?{}( VLA & vla ) with ( vla ) {	// default constructor
+void ?{}( KVPairs & kvp ) with ( kvp ) {	// default constructor
 	size = 0; max_size = 0; data = 0p;
 }
-void ?{}( VLA & vla, int size, char fill = ['\0', '\0'] ) { // initialization
-	vla.[ size, max_size, data ] = [ 0, max_size, alloc( size, fill ) ];
+void ?{}( KVPairs & kvp, int size ) { 		// initialization
+	kvp.[ size, max_size ] = [ 0, size ];
+	kvp.data = alloc( size );
 }
-void ?{}( VLA & vla, VLA val ) with( val ) { // copy, deep
-	vla.[ size, max_size, data ] = [ size, max_size, alloc( size, data ) ];
-}
-void ^?{}( VLA & vla ) with ( vla ) {	// destructor
+void ^?{}( KVPairs & kvp ) with ( kvp ) {	// destructor
 	free( data );
 	size = 0; max_size = 0; data = 0p;
 }
 
-void add_kv_pair( KVPairs kv_pairs, char * k, char * v ) with( kv_pairs ) {
+void add_kv_pair( KVPairs kv_pairs, char * k, char * v ) with ( kv_pairs ) {
 	if ( size == max_size ) {
-		max_size = max_size * 2;
+		max_size *= 2;
 		data = resize( data, max_size );
 	}
@@ -42,6 +40,6 @@
 
 // Parse configuration from a file formatted in shell style
-KVPairs & parse_shell_config_format( const char * config_file ) {
-	KVPairs kv_pairs{ num_entries };
+KVPairs & parse_shell_config_format( const char * config_file, size_t num_entries ) {
+	KVPairs kv_pairs = { num_entries };
 
 	ifstream in;
@@ -69,9 +67,8 @@
 }
 
-// Process the configuration file to set the simulation parameters.
+// Parse configuration values from intermediate format
 void parse_config( const char * config_file, config_entry entries[], size_t num_entries ) {
-	KVPairs kv_pairs = parse_shell_config_format( config_file );
+	KVPairs kv_pairs = parse_shell_config_format( config_file, num_entries );
 
-	// *** WE MUST ALLOW SOME SORT OF VALIDATION FUNCTIONALITY TOO!!! ***
 	int entries_so_far = 0;
 	for ( i; kv_pairs.size ) {
@@ -88,5 +85,5 @@
 			}
 
-			serr | "Value " | src_value | " for key " | dest_key | " could not be parsed";
+			serr | "Value '" | src_value | "' for key '" | src_key | "' could not be parsed";
 		}
 	}
Index: libcfa/src/parseconfig.hfa
===================================================================
--- libcfa/src/parseconfig.hfa	(revision 75824581a6c56a13739927bffd57f0a7c6f3b841)
+++ libcfa/src/parseconfig.hfa	(revision 58ebd786563c5b45bf5b0fa563869710e1f84198)
@@ -4,10 +4,10 @@
 	const char * key;
 	void * variable;
-	bool (*parse)(const char *, void *);
+	bool (*parse)( const char *, void * );
 };
 
 static inline void ?{}( config_entry & this ) {}
 
-forall(T & | { bool parse(const char *, T & ); })
+forall(T & | { bool parse( const char *, T & ); })
 static inline void ?{}( config_entry & this, const char * key, T & variable ) {
 	this.key      = key;
