 	/* add local program options */
 	boost::program_options::options_description opt_problem("PROBLEM EXAMPLE", consoleArg.get_console_nmb_cols());
 	opt_problem.add_options()
-		("test_Tbegin", boost::program_options::value<int>(), "dimension of the problem")
-		("test_Tstep", boost::program_options::value<int>(), "dimension of the problem")
-		("test_Tend", boost::program_options::value<int>(), "dimension of the problem")
-		("test_Kbegin", boost::program_options::value<int>(), "number of clusters")
-		("test_Kstep", boost::program_options::value<int>(), "number of clusters")
-		("test_Kend", boost::program_options::value<int>(), "number of clusters")
+		("test_T", boost::program_options::value<std::vector<int> >()->multitoken(), "dimensions of the problem")
+		("test_K", boost::program_options::value<std::vector<int> >()->multitoken(), "number of clusters")
 		("test_n", boost::program_options::value<int>(), "number of tests");	
 	consoleArg.get_description()->add(opt_problem);
 

	Timer timer1; /* total projection time for petscseq */
	timer1.restart();	

	int K,T;
	Vec x_global;
	Vec x_local;


		return 0;
	} 

	/* --- LOAD CONSOLE ARGUMENTS --- */
	/* which times to try with projection */
	int T;
	std::vector<int> T_list;
	if(!consoleArg.set_option_value("test_T", &T_list)){
		std::cout << "test_T has to be set! Call application with parameter -h to see all parameters" << std::endl;
		return 0;
	}

	/* which number of clusters to try with projection */
	int K;
	std::vector<int> K_list;
	if(!consoleArg.set_option_value("test_K", &K_list)){
		std::cout << "test_K has to be set! Call application with parameter -h to see all parameters" << std::endl;
		return 0;
	}

	/* number of test for each combination T,K */
	int n;
	consoleArg.set_option_value("test_n", &n, 1);

	/* print loaded values */
	int i;
	int T_size = T_list.size();
	int K_size = K_list.size();
	std::ostringstream oss;

	/* print info about what we will compute */
	coutMaster << "- PROBLEM INFO --------------------------------------------------" << std::endl;
	coutMaster << " T      = ";
	for(i=0;i<T_size;i++){
		coutMaster << T_list[i];
		if(i < T_size-1){ 
				coutMaster << ", ";
		}
	}
	coutMaster << " (length of time-series)" << std::endl;
	coutMaster << " K      = ";
	for(i=0;i<K_size;i++){
		coutMaster << K_list[i];
		if(i < K_size-1){ 
				coutMaster << ", ";
		}
	}
	coutMaster << " (number of clusters)" << std::endl;
	coutMaster << "n = " << std::setw(7) << n << " (number of tests)" << std::endl;
	coutMaster << "------------------------------------------------------------------" << std::endl;	


	/* start logging */
	std::ostringstream oss_name_of_file_log;
