Index: /library/bdm/base/user_info.h
===================================================================
--- /library/bdm/base/user_info.h (revision 388)
+++ /library/bdm/base/user_info.h (revision 390)
@@ -113,5 +113,5 @@
 
 	//! internal method assembling a typeless instance from components obtained by the 'AssemblyComponentsFromSetting()' method
-	virtual bdmroot* new_instance() const = 0;
+	virtual root* new_instance() const = 0;
 	
    	//! This methods tries to save an instance of type T (or some of its descendant types)
@@ -150,5 +150,5 @@
 		const UI& related_UI = Mapped_UI::retrieve_ui( class_name );
 		
-		bdmroot* typeless_instance = related_UI.new_instance();
+		root* typeless_instance = related_UI.new_instance();
 
 		instance = NULL;
@@ -339,5 +339,5 @@
 	static const Particular_UI<T>& ui;	
 
-	bdmroot* new_instance() const
+	root* new_instance() const
 	{
 		return new T();
Index: /library/bdm/base/bdmbase.h
===================================================================
--- /library/bdm/base/bdmbase.h (revision 388)
+++ /library/bdm/base/bdmbase.h (revision 390)
@@ -84,5 +84,5 @@
 */
 
-class RV : public bdmroot
+class RV : public root
 {
 protected:
@@ -207,5 +207,5 @@
 //! Class representing function \f$f(x)\f$ of variable \f$x\f$ represented by \c rv
 
-class fnc : public bdmroot
+class fnc : public root
 {
 protected:
@@ -231,5 +231,5 @@
 //! Probability density function with numerical statistics, e.g. posterior density.
 
-class epdf : public bdmroot
+class epdf : public root
 {
 protected:
@@ -319,5 +319,5 @@
 //TODO Samplecond can be generalized
 
-class mpdf : public bdmroot
+class mpdf : public root
 {
 protected:
@@ -522,5 +522,5 @@
 This class abstracts logging of results from implementation. This class replaces direct logging of results (e.g. to files or to global variables) by calling methods of a logger. Specializations of this abstract class for specific storage method are designed.
  */
-class logger : public bdmroot
+class logger : public root
 {
 protected:
@@ -602,5 +602,5 @@
 */
 
-class DS : public bdmroot
+class DS : public root
 {
 protected:
@@ -674,5 +674,5 @@
 */
 
-class BM : public bdmroot
+class BM : public root
 {
 protected:
Index: /library/bdm/base/user_info.cpp
===================================================================
--- /library/bdm/base/user_info.cpp (revision 384)
+++ /library/bdm/base/user_info.cpp (revision 390)
@@ -222,10 +222,22 @@
     if ( link.result.isList() )
     {
-        if ( link.result.getLength() != 3 )
-            ui_error( "the setting supposed to represent a matrix element has wrong syntax", link.result );
-
-        Setting &rows_setting = link.result[0];
-        Setting &cols_setting = link.result[1];
-        Setting &elements = link.result[2];
+		int data_offset;
+
+		if ( link.result.getLength() == 3 )
+			data_offset = 0;
+		else if ( link.result.getLength() == 4 )
+		{
+	        ASSERT_UITYPE(link.result[0],TypeString);
+			if( link.result[0] != "matrix" )
+				ui_error( "the setting supposed to represent a matrix element has wrong syntax", link.result );
+
+			data_offset = 1;
+		}
+		else
+			ui_error( "the setting supposed to represent a matrix element has wrong syntax", link.result );
+
+        Setting &rows_setting = link.result[0 + data_offset];
+        Setting &cols_setting = link.result[1 + data_offset];
+        Setting &elements = link.result[2 + data_offset];
 
         ASSERT_UITYPE(cols_setting,TypeInt);
Index: /library/bdm/bdmroot.h
===================================================================
--- /library/bdm/bdmroot.h (revision 387)
+++ /library/bdm/bdmroot.h (revision 390)
@@ -11,6 +11,6 @@
 */
 
-#ifndef BDMROOT_H
-#define BDMROOT_H
+#ifndef root_H
+#define root_H
 
 #include <string>
@@ -26,8 +26,8 @@
 
 //! Root class of BDM objects
-class bdmroot {
+class root {
 public:
 	//! make sure this is a virtual object
-	virtual ~bdmroot() 
+	virtual ~root() 
 	{
 	}
@@ -56,3 +56,3 @@
 
 }; //namespace
-#endif // BDMROOT_H
+#endif // root_H
Index: /library/tests/test_user_info.cpp
===================================================================
--- /library/tests/test_user_info.cpp (revision 386)
+++ /library/tests/test_user_info.cpp (revision 390)
@@ -7,5 +7,5 @@
 using namespace bdm;
 
-class Passenger : public bdmroot
+class Passenger : public root
 {
 public:
@@ -74,5 +74,5 @@
 UIREGISTER(Robot);
 
-class Transport : public bdmroot
+class Transport : public root
 {
 public:
