diff --git a/SimpleTests/MeshTests/CollapseMeshNodes.cpp b/SimpleTests/MeshTests/CollapseMeshNodes.cpp
index d765b51ffff4abedb5173012fb90eaddee5d819f..eca2fe72b195b5c61a320c7f4548ed2f6cec0aa8 100644
--- a/SimpleTests/MeshTests/CollapseMeshNodes.cpp
+++ b/SimpleTests/MeshTests/CollapseMeshNodes.cpp
@@ -49,12 +49,17 @@ int main(int argc, char *argv[])
 	// Define a value argument and add it to the command line.
 	// A value arg defines a flag and a type of value that it expects,
 	// such as "-m meshfile".
-	TCLAP::ValueArg<std::string> input_mesh_arg("m","mesh","input mesh file",true,"","string");
-
+	TCLAP::ValueArg<std::string> input_mesh_arg("m","mesh","input mesh file name",true,"","string");
 	// Add the argument mesh_arg to the CmdLine object. The CmdLine object
 	// uses this Arg to parse the command line.
 	cmd.add( input_mesh_arg );
 
+	TCLAP::ValueArg<std::string> output_mesh_arg("","out-mesh","mesh file name for output",false,"","string");
+	cmd.add( output_mesh_arg );
+
+	TCLAP::ValueArg<double> distance_arg("d","collapse-distance","maximal distance two nodes are collapsed",false,0.01,"for example you can set this parameter to 10^{-6} times maximal area length");
+	cmd.add( distance_arg );
+
 	cmd.parse( argc, argv );
 
 	std::string fname (input_mesh_arg.getValue());
@@ -70,11 +75,9 @@ int main(int argc, char *argv[])
 #ifndef WIN32
 	if (mesh) {
 		unsigned long mem_with_mesh (mem_watch.getVirtMemUsage());
-//	std::cout << "mem for mesh: " << (mem_with_mesh - mem_without_mesh)/(1024*1024) << " MB" << std::endl;
 		INFO ("mem for mesh: %i MB", (mem_with_mesh - mem_without_mesh)/(1024*1024));
 	}
 	run_time.stop();
-//	std::cout << "time for reading: " << run_time.elapsed() << " s" << std::endl;
 	if (mesh) {
 		INFO ("time for reading: %f s", run_time.elapsed());
 	}
@@ -85,7 +88,8 @@ int main(int argc, char *argv[])
 	run_time.start();
 #endif
 	MeshLib::MeshCoarsener mesh_coarsener(mesh);
-	MeshLib::Mesh *collapsed_mesh(mesh_coarsener (0.1));
+	MeshLib::Mesh *collapsed_mesh(mesh_coarsener (distance_arg.getValue()));
+
 #ifndef WIN32
 	run_time.stop();
 	unsigned long mem_with_meshgrid (mem_watch.getVirtMemUsage());
@@ -94,7 +98,10 @@ int main(int argc, char *argv[])
 #endif
 
 	mesh_io.setMesh(collapsed_mesh);
-	std::string out_fname("/home/fischeth/workspace/OGS-6/Build/CollapsedMesh.msh");
+	std::string out_fname (output_mesh_arg.getValue());
+	if (out_fname.empty()) {
+		out_fname = "/home/fischeth/workspace/OGS-6/Build/CollapsedMesh.msh";
+	}
 	INFO ("writing collapsed mesh to %s", out_fname.c_str());
 	mesh_io.writeToFile(out_fname);
 	INFO ("done");