summary refs log tree commit diff stats
path: root/doc/uml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/uml')
-rw-r--r--doc/uml/1280021005
-rw-r--r--doc/uml/128002.diagram155
-rw-r--r--doc/uml/134530145
-rw-r--r--doc/uml/134530.diagram189
-rw-r--r--doc/uml/141058.diagram216
-rw-r--r--doc/uml/2.session24
-rw-r--r--doc/uml/cpp_includes13
-rw-r--r--doc/uml/generation_settings310
-rw-r--r--doc/uml/idl_includes1
-rw-r--r--doc/uml/java_imports1
-rw-r--r--doc/uml/python_imports1
-rw-r--r--doc/uml/stereotypes59
-rw-r--r--doc/uml/tools18
-rw-r--r--doc/uml/uml.prj43
14 files changed, 2180 insertions, 0 deletions
diff --git a/doc/uml/128002 b/doc/uml/128002
new file mode 100644
index 00000000..10bf78d9
--- /dev/null
+++ b/doc/uml/128002
@@ -0,0 +1,1005 @@
+format 70
+"ranger" // ranger
+  revision 20
+  modified_by 2 "hut"
+  // class settings
+  //class diagram settings
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  //use case diagram settings
+  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
+  //sequence diagram settings
+  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
+  //collaboration diagram settings
+  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
+  //object diagram settings
+   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
+  //component diagram settings
+  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
+  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
+  //deployment diagram settings
+  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
+  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
+  //state diagram settings
+  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
+  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
+  //activity diagram settings
+  package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
+  show_infonote default drawing_language default show_stereotype_properties default
+  
+  classview 128002 "Classes"
+    //class diagram settings
+    draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+    //collaboration diagram settings
+    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
+    //object diagram settings
+     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
+    //sequence diagram settings
+    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
+    //state diagram settings
+    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
+    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
+    //class settings
+    //activity diagram settings
+    package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
+    show_infonote default drawing_language default show_stereotype_properties default
+    classdiagram 134530 "Overview"
+      draw_all_relations no hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+      size A4
+    end
+
+    sequencediagram 141058 "Basic Logic"
+      show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
+      overlapping_bars size A4
+    end
+
+    classdiagram 128002 "Displayable Hierarchy"
+      draw_all_relations no hide_attributes yes hide_operations yes hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+      class_color yellow 
+      size A4
+    end
+
+    class 128002 "Displayable"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 136322 // <aggregation>
+	relation_ref 135938 // <aggregation>
+      end
+
+      operation 134530 "draw"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 134658 "press"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 134786 "click"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 134914 "destroy"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 135042 "resize"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      classrelation 143234 // <generalisation>
+	relation 142850 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 143234 // <generalisation>
+	  b parent class_ref 142210 // EnvironmentAware
+      end
+
+      classrelation 143362 // <generalisation>
+	relation 142978 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 143362 // <generalisation>
+	  b parent class_ref 141954 // FileManagerAware
+      end
+
+      classrelation 150018 // <generalisation>
+	relation 149634 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 150018 // <generalisation>
+	  b parent class_ref 142082 // SettingsAware
+      end
+
+      classrelation 170882 // <association>
+	relation 169986 ----
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 170882 // <association>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 171010 // <association>
+      end
+
+      classrelation 171778 // <association>
+	relation_ref 170370 // <association>
+      end
+
+      operation 149378 "finalize"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 149506 "color"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 149634 "contains_point"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 128130 "UI"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 128258 // <generalisation>
+	relation 128258 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 128258 // <generalisation>
+	  b parent class_ref 128386 // DisplayableContainer
+      end
+
+      operation 148482 "handle_mouse"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 148610 "handle_key"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 148738 "get_next_key"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 148866 "setup"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 148994 "setup"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 149122 "redraw"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 149250 "update_size"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 171138 "initialize"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 128258 "DefaultUI"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 128002 // <generalisation>
+	relation 128002 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 128002 // <generalisation>
+	  b parent class_ref 128130 // UI
+      end
+
+      classrelation 171906 // <association>
+	relation 170498 ----
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 171906 // <association>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 172034 // <association>
+      end
+
+      classrelation 179970 // <aggregation>
+	relation 178178 o---
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 179970 // <aggregation>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 180098 // <aggregation>
+      end
+
+      operation 171266 "open_console"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 171394 "scroll"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 128386 "DisplayableContainer"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 128386 // <generalisation>
+	relation 128386 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 128386 // <generalisation>
+	  b parent class_ref 128002 // Displayable
+      end
+
+      classrelation 136194 // <aggregation>
+	relation 135938 o---
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 136194 // <aggregation>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 136322 // <aggregation>
+      end
+
+      operation 149762 "get_focused_obj"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 149890 "add_obj"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 135042 "TitleBar"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 172674 // <generalisation>
+	relation 171010 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 172674 // <generalisation>
+	  b parent class_ref 156034 // Widget
+      end
+    end
+
+    class 135170 "FileList"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 136066 // <aggregation>
+	relation_ref 135810 // <aggregation>
+      end
+
+      classrelation 172802 // <generalisation>
+	relation 171138 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 172802 // <generalisation>
+	  b parent class_ref 156034 // Widget
+      end
+    end
+
+    class 135298 "FileListContainer"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 135554 // <generalisation>
+	relation 135554 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 135554 // <generalisation>
+	  b parent class_ref 128386 // DisplayableContainer
+      end
+
+      classrelation 135938 // <aggregation>
+	relation 135810 o---
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 135938 // <aggregation>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 136066 // <aggregation>
+      end
+
+      classrelation 172930 // <generalisation>
+	relation 171266 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 172930 // <generalisation>
+	  b parent class_ref 156034 // Widget
+      end
+    end
+
+    class 135426 "Console"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 172162 // <association>
+	relation 170626 ----
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 172162 // <association>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 172290 // <association>
+      end
+
+      classrelation 172546 // <generalisation>
+	relation 170882 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 172546 // <generalisation>
+	  b parent class_ref 156034 // Widget
+      end
+
+      operation 163202 "open"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 163330 "close"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 163458 "clear"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 163586 "move"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 163714 "type_key"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 163842 "execute"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 141954 "FileManagerAware"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+
+    class 142082 "SettingsAware"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+
+    class 142210 "EnvironmentAware"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+
+    class 148738 "Action"
+      abstract visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+
+    class 148866 "Command"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 163714 // <aggregation>
+	relation_ref 162946 // <aggregation>
+      end
+
+      classrelation 170498 // <unidirectional association>
+	relation 169730 --->
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 170498 // <unidirectional association>
+	  b parent class_ref 148738 // Action
+      end
+
+      operation 164226 "execute"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 148994 "CommandList"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 163586 // <aggregation>
+	relation 162946 o---
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 163586 // <aggregation>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 163714 // <aggregation>
+      end
+
+      classrelation 172034 // <association>
+	relation_ref 170498 // <association>
+      end
+
+      classrelation 172290 // <association>
+	relation_ref 170626 // <association>
+      end
+
+      operation 164354 "rebuild_paths"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 164482 "bind"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 149122 "Environment"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 171394 // <aggregation>
+	relation 170242 o---
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 171394 // <aggregation>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 171522 // <aggregation>
+      end
+
+      classrelation 171650 // <association>
+	relation 170370 ----
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 171650 // <association>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 171778 // <association>
+      end
+
+      operation 171522 "garbage_collect"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 171650 "enter_dir"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 149378 "FM"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 156546 // <generalisation>
+	relation 156162 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 156546 // <generalisation>
+	  b parent class_ref 148738 // Action
+      end
+
+      classrelation 179714 // <unidirectional association>
+	relation 177922 --->
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 179714 // <unidirectional association>
+	  b parent class_ref 149122 // Environment
+      end
+
+      classrelation 179842 // <unidirectional association>
+	relation 178050 --->
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 179842 // <unidirectional association>
+	  b parent class_ref 128258 // DefaultUI
+      end
+
+      operation 141826 "initialize"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 141954 "loop"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 155906 "FileSystemObject"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 171522 // <aggregation>
+	relation_ref 170242 // <aggregation>
+      end
+
+      classrelation 186754 // <association>
+	relation_ref 184706 // <association>
+      end
+
+      operation 163970 "load"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 164098 "go"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 156034 "Widget"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 172418 // <generalisation>
+	relation 170754 ---|>
+	  a public
+	    python "${type}"
+	    classrelation_ref 172418 // <generalisation>
+	  b parent class_ref 128002 // Displayable
+      end
+
+      classrelation 180098 // <aggregation>
+	relation_ref 178178 // <aggregation>
+      end
+    end
+
+    classinstance 134530 "cl"
+      type class_ref 148994 // CommandList
+      attributes
+        end
+      relations
+        end
+    end
+
+    classinstance 134658 "console_cl"
+      type class_ref 148994 // CommandList
+      attributes
+        end
+      relations
+        end
+    end
+
+    class 169218 "Main"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+  end
+end
diff --git a/doc/uml/128002.diagram b/doc/uml/128002.diagram
new file mode 100644
index 00000000..3c359d42
--- /dev/null
+++ b/doc/uml/128002.diagram
@@ -0,0 +1,155 @@
+format 70
+
+classcanvas 128002 class_ref 128002 // Displayable
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 301.407 212.109 2000
+end
+classcanvas 128130 class_ref 128130 // UI
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 240.852 390.327 2000
+end
+classcanvas 128258 class_ref 128258 // DefaultUI
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 217.717 473.896 2000
+end
+classcanvas 128642 class_ref 128386 // DisplayableContainer
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 224.704 309.894 2006
+end
+classcanvas 129410 class_ref 135042 // TitleBar
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 629.233 351.65 2000
+end
+classcanvas 129666 class_ref 135170 // FileList
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 539.259 352.907 2000
+end
+classcanvas 129922 class_ref 135298 // FileListContainer
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 471.3 421.8 2000
+end
+classcanvas 131970 class_ref 135426 // Console
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 722.435 351.987 2000
+end
+note 132738 "Only one instance, since it initializes curses!"
+  xyzwh 68 390 2012 89 113
+classcanvas 132994 class_ref 141954 // FileManagerAware
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 138 98 2000
+end
+classcanvas 133122 class_ref 142082 // SettingsAware
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 153 151 2000
+end
+classcanvas 133250 class_ref 142210 // EnvironmentAware
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 134 50 2005
+end
+classcanvas 134530 class_ref 156034 // Widget
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 600 232 2000
+end
+note 136962 "Defines no methods, just for classification"
+  xyzwh 608 99 2000 135 77
+relationcanvas 128386 relation_ref 128002 // <generalisation>
+  decenter_begin 529
+  from ref 128258 z 2001 to ref 128130
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 128898 relation_ref 128386 // <generalisation>
+  decenter_begin 625
+  decenter_end 339
+  from ref 128642 z 2007 to ref 128002
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 130178 relation_ref 135554 // <generalisation>
+  decenter_end 715
+  from ref 129922 z 2007 to point 349 395
+  line 132610 z 2007 to ref 128642
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 130562 relation_ref 135810 // <aggregation>
+  decenter_begin 693
+  from ref 129922 z 2001 to ref 129666
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 130690 relation_ref 135938 // <aggregation>
+  decenter_begin 720
+  decenter_end 495
+  from ref 128642 z 2007 to ref 128002
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 132354 relation_ref 128258 // <generalisation>
+  decenter_begin 487
+  decenter_end 205
+  from ref 128130 z 2007 to ref 128642
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 133378 relation_ref 142850 // <generalisation>
+  decenter_begin 505
+  from ref 128002 z 2006 to point 348 66
+  line 133762 z 2006 to ref 133250
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 133506 relation_ref 142978 // <generalisation>
+  decenter_begin 313
+  from ref 128002 z 2001 to point 329 115
+  line 133890 z 2001 to ref 132994
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 134274 relation_ref 149634 // <generalisation>
+  decenter_begin 116
+  from ref 128002 z 2001 to point 307 168
+  line 134402 z 2001 to ref 133122
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 134658 relation_ref 170754 // <generalisation>
+  decenter_end 708
+  from ref 134530 z 2001 to ref 128002
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 134786 relation_ref 170882 // <generalisation>
+  from ref 131970 z 2001 to ref 134530
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 134914 relation_ref 171010 // <generalisation>
+  from ref 129410 z 2001 to ref 134530
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 135042 relation_ref 171138 // <generalisation>
+  from ref 129666 z 2001 to ref 134530
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 135938 relation_ref 171266 // <generalisation>
+  decenter_begin 333
+  from ref 129922 z 2001 to point 517 316
+  line 136066 z 2001 to ref 134530
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 136194 relation_ref 178178 // <aggregation>
+  from ref 128258 z 2001 to point 366 492
+  line 136706 z 2001 to point 456 291
+  line 136834 z 2001 to ref 134530
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+line 132866 -_-_
+  from ref 132738 z 2013 to ref 128130
+line 137090 -_-_
+  from ref 136962 z 2001 to ref 134530
+end
diff --git a/doc/uml/134530 b/doc/uml/134530
new file mode 100644
index 00000000..9f91d104
--- /dev/null
+++ b/doc/uml/134530
@@ -0,0 +1,145 @@
+format 70
+"builtin" // builtin
+  revision 3
+  modified_by 2 "hut"
+  // class settings
+  //class diagram settings
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  //use case diagram settings
+  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
+  //sequence diagram settings
+  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
+  //collaboration diagram settings
+  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
+  //object diagram settings
+   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
+  //component diagram settings
+  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
+  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
+  //deployment diagram settings
+  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
+  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
+  //state diagram settings
+  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
+  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
+  //activity diagram settings
+  package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
+  show_infonote default drawing_language default show_stereotype_properties default
+  
+  classview 134530 "builtins"
+    //class diagram settings
+    draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+    //collaboration diagram settings
+    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
+    //object diagram settings
+     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
+    //sequence diagram settings
+    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
+    //state diagram settings
+    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
+    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
+    //class settings
+    //activity diagram settings
+    package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
+    show_infonote default drawing_language default show_stereotype_properties default
+    class 149250 "curses"
+      visibility protected 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 171010 // <association>
+	relation_ref 169986 // <association>
+      end
+
+      operation 141570 "initscr"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 141698 "endwin"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 171778 "getch"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+    end
+
+    class 162690 "os"
+      visibility package 
+      cpp_decl ""
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+      idl_decl ""
+      explicit_switch_type ""
+      
+      operation 156418 "listdir"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      operation 156674 "stat"
+	public explicit_return_type ""
+	nparams 0
+	
+	
+	
+	python_def "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+	
+      end
+
+      classrelation 186626 // <association>
+	relation 184706 ----
+	  a role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 186626 // <association>
+	  b role_name "" private
+	    python "${comment}${self}${name} = ${value}
+"
+	    classrelation_ref 186754 // <association>
+      end
+    end
+  end
+end
diff --git a/doc/uml/134530.diagram b/doc/uml/134530.diagram
new file mode 100644
index 00000000..64cb30ae
--- /dev/null
+++ b/doc/uml/134530.diagram
@@ -0,0 +1,189 @@
+format 70
+
+classcanvas 128002 class_ref 148738 // Action
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 151 121 2000
+end
+classcanvas 128130 class_ref 148866 // Command
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 212 31 2000
+end
+classcanvas 128258 class_ref 148994 // CommandList
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 338 18 2000
+end
+classcanvas 128642 class_ref 149122 // Environment
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 99 305 2000
+end
+classcanvas 128770 class_ref 149250 // curses
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 118 611 2000
+end
+classcanvas 128898 class_ref 149378 // FM
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 143 185 2000
+end
+classcanvas 129154 class_ref 128002 // Displayable
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 325 408 2000
+end
+classcanvas 129666 class_ref 135426 // Console
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 627 149 2006
+end
+classcanvas 129922 class_ref 128130 // UI
+  draw_all_relations default hide_attributes default hide_operations yes hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 366 235 2006
+end
+classcanvas 130178 class_ref 128386 // DisplayableContainer
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 299 311 2012
+end
+classcanvas 131458 class_ref 155906 // FileSystemObject
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 71 416 2000
+end
+classcanvas 131842 class_ref 128258 // DefaultUI
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 325 129 2012
+end
+classcanvas 132610 class_ref 156034 // Widget
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 509 237 2017
+end
+classcanvas 133250 class_ref 135170 // FileList
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 549 392 2023
+end
+classcanvas 133506 class_ref 135042 // TitleBar
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 646 391 2023
+end
+classcanvas 136322 class_ref 162690 // os
+  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
+  xyz 54 566 2000
+end
+packagecanvas 136578 
+  package_ref 134530 // builtin
+    xyzwh 29 522 2006 225 181
+end
+note 137346 "\"outer world\""
+  xyzwh 123 566 2011 117 37
+relationcanvas 129026 relation_ref 156162 // <generalisation>
+  decenter_begin 466
+  from ref 128898 z 2001 to ref 128002
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 129538 relation_ref 162946 // <aggregation>
+  from ref 128258 z 2001 to ref 128130
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 130306 relation_ref 128386 // <generalisation>
+  decenter_begin 441
+  decenter_end 407
+  from ref 130178 z 2001 to ref 129154
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 130434 relation_ref 135938 // <aggregation>
+  decenter_begin 603
+  decenter_end 631
+  from ref 130178 z 2001 to ref 129154
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 130562 relation_ref 128258 // <generalisation>
+  from ref 129922 z 2007 to ref 130178
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 130946 relation_ref 169730 // <unidirectional association>
+  from ref 128130 z 2001 to point 180 56
+  line 137218 z 2001 to ref 128002
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 131202 relation_ref 169986 // <association>
+  decenter_begin 514
+  from ref 129154 z 2001 to ref 128770
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 131586 relation_ref 170242 // <aggregation>
+  decenter_begin 351
+  from ref 128642 z 2001 to ref 131458
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 131714 relation_ref 170370 // <association>
+  from ref 128642 z 2001 to ref 129154
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 131970 relation_ref 128002 // <generalisation>
+  from ref 131842 z 2007 to ref 129922
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 132354 relation_ref 170498 // <association>
+  decenter_begin 435
+  decenter_end 347
+  from ref 131842 z 2013 to ref 128258
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 132738 relation_ref 170754 // <generalisation>
+  decenter_end 126
+  from ref 132610 z 2001 to point 493 430
+  line 137474 z 2001 to ref 129154
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 132866 relation_ref 170882 // <generalisation>
+  from ref 129666 z 2007 to ref 132610
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 133378 relation_ref 171138 // <generalisation>
+  from ref 133250 z 2018 to ref 132610
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 133634 relation_ref 171010 // <generalisation>
+  from ref 133506 z 2018 to ref 132610
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 133762 relation_ref 177922 // <unidirectional association>
+  decenter_end 569
+  from ref 128898 z 2001 to ref 128642
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 135170 relation_ref 178050 // <unidirectional association>
+  from ref 128898 z 2013 to ref 131842
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 135298 relation_ref 178178 // <aggregation>
+  decenter_begin 558
+  from ref 131842 z 2018 to point 523 169
+  line 136194 z 2018 to ref 132610
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 136450 relation_ref 184706 // <association>
+  from ref 136322 z 2001 to ref 131458
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+relationcanvas 136834 relation_ref 170626 // <association>
+  from ref 129666 z 2007 to point 564 94
+  line 137090 z 2007 to ref 128258
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+end
+end
diff --git a/doc/uml/141058.diagram b/doc/uml/141058.diagram
new file mode 100644
index 00000000..9268c4c4
--- /dev/null
+++ b/doc/uml/141058.diagram
@@ -0,0 +1,216 @@
+format 70
+
+classinstance 128258 class_ref 169218 // Main
+  name ""   xyz 64 4 2000 life_line_z 2000
+classinstance 128386 class_ref 149378 // FM
+  name ""   xyz 185 32 2000 life_line_z 2000
+classinstance 128898 class_ref 128258 // DefaultUI
+  name ""   mortal  xyz 289 80 2000 life_line_z 2000
+classinstance 132226 class_ref 149122 // Environment
+  name ""   xyz 421 84 2000 life_line_z 2000
+classinstance 133122 class_ref 156034 // Widget
+  name ""   xyz 544 107 2000 life_line_z 2000
+classinstance 133762 class_ref 149250 // curses
+  name ""   xyz 632 4 2000 life_line_z 2000
+classinstance 134530 class_ref 148866 // Command
+  name ""   xyz 727 4 2000 life_line_z 2000
+durationcanvas 128514 classinstance_ref 128258 // :Main
+  xyzwh 83 82 2010 11 40
+end
+durationcanvas 128642 classinstance_ref 128386 // :FM
+  xyzwh 204 82 2010 11 25
+end
+durationcanvas 129026 classinstance_ref 128258 // :Main
+  xyzwh 83 130 2010 11 34
+end
+durationcanvas 129154 classinstance_ref 128898 // :DefaultUI
+  xyzwh 325 130 2010 11 58
+  overlappingdurationcanvas 135426
+    xyzwh 331 142 2020 11 40
+    overlappingdurationcanvas 135682
+      xyzwh 337 151 2030 11 25
+    end
+  end
+end
+durationcanvas 129410 classinstance_ref 128258 // :Main
+  xyzwh 83 180 2010 11 35
+end
+durationcanvas 129538 classinstance_ref 128386 // :FM
+  xyzwh 204 172 2010 11 468
+  overlappingdurationcanvas 136450
+    xyzwh 210 537 2020 11 25
+  end
+end
+durationcanvas 129794 classinstance_ref 128258 // :Main
+  xyzwh 83 655 2010 11 27
+end
+durationcanvas 129922 classinstance_ref 128898 // :DefaultUI
+  xyzwh 325 655 2010 11 27
+end
+durationcanvas 130178 classinstance_ref 128898 // :DefaultUI
+  xyzwh 325 265 2010 11 26
+end
+durationcanvas 130434 classinstance_ref 128898 // :DefaultUI
+  xyzwh 325 311 2010 11 26
+end
+durationcanvas 130690 classinstance_ref 128898 // :DefaultUI
+  xyzwh 325 381 2010 11 43
+end
+durationcanvas 131074 classinstance_ref 128898 // :DefaultUI
+  xyzwh 325 467 2010 11 53
+  overlappingdurationcanvas 134914
+    xyzwh 331 489 2020 11 25
+  end
+end
+durationcanvas 132354 classinstance_ref 132226 // :Environment
+  xyzwh 469 606 2010 11 32
+end
+durationcanvas 132866 classinstance_ref 132226 // :Environment
+  xyzwh 469 184 2010 11 27
+end
+durationcanvas 133250 classinstance_ref 133122 // :Widget
+  xyzwh 571 280 2010 11 25
+end
+durationcanvas 133506 classinstance_ref 133122 // :Widget
+  xyzwh 571 323 2010 11 25
+end
+durationcanvas 133890 classinstance_ref 133762 // :curses
+  xyzwh 658 389 2010 11 31
+end
+durationcanvas 135170 classinstance_ref 133122 // :Widget
+  xyzwh 571 501 2010 11 27
+end
+durationcanvas 135938 classinstance_ref 134530 // :Command
+  xyzwh 767 506 2010 11 72
+end
+durationcanvas 136706 classinstance_ref 133122 // :Widget
+  xyzwh 571 563 2010 11 34
+end
+msg 128770 synchronous
+  from durationcanvas_ref 128514
+  to durationcanvas_ref 128642
+  yz 82 2015 msg operation_ref 141826 // "initialize()"
+  show_full_operations_definition default drawing_language default
+  label_xy 117 64
+msg 129282 synchronous
+  from durationcanvas_ref 129026
+  to durationcanvas_ref 129154
+  yz 130 2015 msg operation_ref 171138 // "initialize()"
+  show_full_operations_definition default drawing_language default
+  label_xy 124 111
+msg 129666 synchronous
+  from durationcanvas_ref 129410
+  to durationcanvas_ref 129538
+  yz 180 2015 msg operation_ref 141954 // "loop()"
+  show_full_operations_definition default drawing_language default
+  label_xy 129 162
+msg 130050 synchronous
+  from durationcanvas_ref 129794
+  to durationcanvas_ref 129922
+  yz 655 2015 msg operation_ref 134914 // "destroy()"
+  show_full_operations_definition default drawing_language default
+  label_xy 119 636
+msg 130306 synchronous
+  from durationcanvas_ref 129538
+  to durationcanvas_ref 130178
+  yz 265 2015 msg operation_ref 134530 // "draw()"
+  show_full_operations_definition default drawing_language default
+  label_xy 245 247
+msg 130562 synchronous
+  from durationcanvas_ref 129538
+  to durationcanvas_ref 130434
+  yz 311 2015 msg operation_ref 149378 // "finalize()"
+  show_full_operations_definition default drawing_language default
+  label_xy 240 293
+msg 130818 synchronous
+  from durationcanvas_ref 129538
+  to durationcanvas_ref 130690
+  yz 382 2015 msg operation_ref 148738 // "get_next_key()"
+  show_full_operations_definition default drawing_language default
+  label_xy 229 361
+msg 130946 return
+  from durationcanvas_ref 130690
+  to durationcanvas_ref 129538
+  yz 412 2020 unspecifiedmsg
+  show_full_operations_definition default drawing_language default
+msg 131202 synchronous
+  from durationcanvas_ref 129538
+  to durationcanvas_ref 131074
+  yz 467 2015 msg operation_ref 148610 // "handle_key()"
+  show_full_operations_definition default drawing_language default
+  label_xy 234 449
+msg 132482 synchronous
+  from durationcanvas_ref 129538
+  to durationcanvas_ref 132354
+  yz 606 2015 msg operation_ref 171522 // "garbage_collect()"
+  show_full_operations_definition default drawing_language default
+  label_xy 260 587
+msg 132994 synchronous
+  from durationcanvas_ref 129538
+  to durationcanvas_ref 132866
+  yz 185 2020 msg operation_ref 171650 // "enter_dir()"
+  show_full_operations_definition default drawing_language default
+  label_xy 222 164
+msg 133378 synchronous
+  from durationcanvas_ref 130178
+  to durationcanvas_ref 133250
+  yz 280 2015 msg operation_ref 134530 // "draw()"
+  show_full_operations_definition default drawing_language default
+  label_xy 407 262
+msg 133634 synchronous
+  from durationcanvas_ref 130434
+  to durationcanvas_ref 133506
+  yz 323 2015 msg operation_ref 149378 // "finalize()"
+  show_full_operations_definition default drawing_language default
+  label_xy 405 303
+msg 134018 synchronous
+  from durationcanvas_ref 130690
+  to durationcanvas_ref 133890
+  yz 391 2015 msg operation_ref 171778 // "getch()"
+  show_full_operations_definition default drawing_language default
+  label_xy 713 361
+msg 134402 return
+  from durationcanvas_ref 133890
+  to durationcanvas_ref 130690
+  yz 408 2020 unspecifiedmsg
+  show_full_operations_definition default drawing_language default
+reflexivemsg 135042 synchronous
+  to durationcanvas_ref 134914
+  yz 489 2025 msg operation_ref 148482 // "handle_mouse()"
+  show_full_operations_definition default drawing_language default
+  label_xy 345 462
+msg 135298 synchronous
+  from durationcanvas_ref 134914
+  to durationcanvas_ref 135170
+  yz 502 2030 msg operation_ref 134786 // "click()"
+  show_full_operations_definition default drawing_language default
+  label_xy 474 484
+reflexivemsg 135554 synchronous
+  to durationcanvas_ref 135426
+  yz 142 2025 msg operation_ref 148866 // "setup()"
+  show_full_operations_definition default drawing_language default
+  label_xy 340 120
+reflexivemsg 135810 synchronous
+  to durationcanvas_ref 135682
+  yz 151 2035 msg operation_ref 149890 // "add_obj()"
+  show_full_operations_definition default drawing_language default
+  label_xy 372 143
+msg 136066 synchronous
+  from durationcanvas_ref 135170
+  to durationcanvas_ref 135938
+  yz 506 2015 msg operation_ref 164226 // "execute()"
+  show_full_operations_definition default drawing_language default
+  label_xy 593 488
+msg 136578 synchronous
+  from durationcanvas_ref 135938
+  to durationcanvas_ref 136450
+  yz 537 2025 explicitmsg "<command>"
+  show_full_operations_definition default drawing_language default
+  label_xy 222 520
+msg 136834 synchronous
+  from durationcanvas_ref 135938
+  to durationcanvas_ref 136706
+  yz 567 2030 explicitmsg "<command>"
+  show_full_operations_definition default drawing_language default
+  label_xy 581 554
+end
diff --git a/doc/uml/2.session b/doc/uml/2.session
new file mode 100644
index 00000000..ab40f74a
--- /dev/null
+++ b/doc/uml/2.session
@@ -0,0 +1,24 @@
+window_sizes 1442 880 393 1039 642 144
+motifplus_style
+diagrams
+  active  classdiagram_ref 128002 // Displayable Hierarchy
+    1275 795 100 4 0 0
+  classdiagram_ref 134530 // Overview
+    1275 795 100 4 0 0
+  sequencediagram_ref 141058 // Basic Logic
+    1275 795 100 4 60 0
+end
+show_stereotypes
+selected classdiagram_ref 128002 // Displayable Hierarchy
+open
+  class_ref 128002 // Displayable
+  class_ref 128130 // UI
+  class_ref 128258 // DefaultUI
+  class_ref 148866 // Command
+  class_ref 148994 // CommandList
+  class_ref 149122 // Environment
+  class_ref 149378 // FM
+  class_ref 155906 // FileSystemObject
+  class_ref 149250 // curses
+end
+end
diff --git a/doc/uml/cpp_includes b/doc/uml/cpp_includes
new file mode 100644
index 00000000..531b86f7
--- /dev/null
+++ b/doc/uml/cpp_includes
@@ -0,0 +1,13 @@
+// "a type" "needed cpp_includes"
+"vector" "#include <vector>
+using namespace std;"
+
+"list" "#include <list>
+using namespace std;"
+
+"map" "#include <map>
+using namespace std;"
+
+"string" "#include <string>
+using namespace std;"
+
diff --git a/doc/uml/generation_settings b/doc/uml/generation_settings
new file mode 100644
index 00000000..8cd2bc14
--- /dev/null
+++ b/doc/uml/generation_settings
@@ -0,0 +1,310 @@
+
+  python_default_defs 
+  cpp_h_extension "h" cpp_src_extension "cpp" java_extension "java" php_extension "php" python_extension "py" idl_extension "idl"
+  cpp_inline_dont_force_incl_in_h
+
+  type_forms 15 // uml cpp java idl cpp_in cpp_out cpp_inout cpp_return
+    "void" "void" "void" "void" "${type}" "${type} &" "${type}" "${type}"
+    "any" "void *" "Object" "any" "const ${type}" "${type}" "${type} &" "${type}"
+    "bool" "bool" "boolean" "boolean" "${type}" "${type} &" "${type} &" "${type}"
+    "char" "char" "char" "char" "${type}" "${type} &" "${type} &" "${type}"
+    "uchar" "unsigned char" "char" "octet" "${type}" "${type} &" "${type} &" "${type}"
+    "byte" "unsigned char" "byte" "octet" "${type}" "${type} &" "${type} &" "${type}"
+    "short" "short" "short" "short" "${type}" "${type} &" "${type} &" "${type}"
+    "ushort" "unsigned short" "short" "unsigned short" "${type}" "${type} &" "${type} &" "${type}"
+    "int" "int" "int" "long" "${type}" "${type} &" "${type} &" "${type}"
+    "uint" "unsigned int" "int" "unsigned long" "${type}" "${type} &" "${type} &" "${type}"
+    "long" "long" "long" "long" "${type}" "${type} &" "${type} &" "${type}"
+    "ulong" "unsigned long" "long" "unsigned long" "${type}" "${type} &" "${type} &" "${type}"
+    "float" "float" "float" "float" "${type}" "${type} &" "${type} &" "${type}"
+    "double" "double" "double" "double" "${type}" "${type} &" "${type} &" "${type}"
+    "string" "string" "String" "string" "${type}" "${type} &" "${type} &" "${type}"
+  
+  relations_stereotypes 5 // uml cpp java pythonidl
+    "sequence" "vector" "Vector" "list" "sequence"
+    "vector" "vector" "Vector" "list" "sequence"
+    "list" "list" "List" "list" "sequence"
+    "set" "set" "Set" "set" "sequence"
+    "map" "map" "Map" "dict" "sequence"
+  
+  classes_stereotypes 14 // uml cpp java php python idl
+    "class" "class" "class" "class" "class" "valuetype"
+    "interface" "class" "interface" "interface" "class" "interface"
+    "exception" "class" "class" "class" "class" "exception"
+    "enum" "enum" "enum" "enum" "enum" "enum"
+    "enum_pattern" "enum" "enum_pattern" "enum" "enum" "enum"
+    "struct" "struct" "class" "class" "class" "struct"
+    "union" "union" "class" "class" "class" "union"
+    "typedef" "typedef" "ignored" "ignored" "ignored" "typedef"
+    "boundary" "class" "class" "class" "class" "interface"
+    "control" "class" "class" "class" "class" "valuetype"
+    "entity" "class" "class" "class" "class" "valuetype"
+    "actor" "ignored" "ignored" "ignored" "ignored" "ignored"
+    "@interface" "ignored" "@interface" "ignored" "ignored" "ignored"
+    "stereotype" "ignored" "ignored" "ignored" "ignored" "ignored"
+  
+  cpp_enum_default_type_forms "${type}" "${type} &" "${type} &" "${type}" // in out inout return
+  other_cpp_types_default_type_forms "const ${type} &" "${type} &" "${type} &" "${type}" // in out inout return
+
+  cpp_default_h_content "#ifndef ${NAMESPACE}_${NAME}_H
+#define ${NAMESPACE}_${NAME}_H
+
+${comment}
+${includes}
+${declarations}
+${namespace_start}
+${definition}
+${namespace_end}
+#endif
+"
+  cpp_default_src_content "${comment}
+${includes}
+${namespace_start}
+${members}
+${namespace_end}"
+  cpp_default_class_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+  cpp_default_external_class_decl "${name}
+#include <${name}.h>
+"
+  cpp_default_struct_decl "${comment}${template}struct ${name}${inherit} {
+${members}};
+${inlines}
+"
+  cpp_default_union_decl "${comment}${template}union ${name} {
+${members}};
+${inlines}
+"
+  cpp_default_enum_decl "${comment}enum ${name} {
+${items}
+};
+"
+  cpp_default_typedef_decl "${comment}typedef ${type} ${name};
+"
+  cpp_default_attribute_declaration "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+" // multiplicity 1
+  "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
+" // multiplicity * a..b
+  "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${multiplicity}${value};
+" // multiplicity [..]
+  cpp_default_enum_item_declaration "  ${name}${value},${comment}"
+  cpp_association_aggregation_declaration
+    "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+" // multiplicity 1
+    "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
+" // multiplicity * a..b
+    "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${multiplicity}${value};
+" // multiplicity [..]
+  cpp_aggregation_by_value_declaration
+    "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+" // multiplicity 1
+    "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
+" // multiplicity * a..b
+    "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${multiplicity}${value};
+" // multiplicity [..]
+  cpp_get "get_${name}" inline const value_const public
+  cpp_set "set_${name}" public
+  cpp_default_operation_declaration "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+  cpp_default_operation_definition "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+  java_default_src_content "${comment}
+${package}
+${imports}
+${definition}"
+  java_default_class_decl "${comment}${@}${visibility}${final}${abstract}class ${name}${extends}${implements} {
+${members}}
+"
+  java_default_external_class_decl "${name}"
+  java_default_interface_decl "${comment}${@}${visibility}interface ${name}${extends} {
+${members}}
+"
+  java5_default_enum_decl "${comment}${@}${visibility}${final}${abstract}enum ${name}${implements} {
+${items};
+${members}}
+"
+  java_default_enum_decl "${comment}${@}${visibility}final class ${name} {
+${members}
+  private final int value;
+
+  public int value() {
+    return value;
+  }
+
+  public static ${name} fromInt(int value) {
+    switch (value) {
+${cases}    default: throw new Error();
+    }
+
+  }
+  private ${name}(int v) { value = v; };
+}
+"
+  java_default_attribute_declaration "  ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type} ${name}${value};
+" // multiplicity 1
+  "  ${comment}${@}${visibility}${static}${final}${transient}${volatile}${stereotype}<${type}> ${name}${value};
+" // multiplicity * a..b
+  "  ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type}${multiplicity} ${name}${value};
+" // multiplicity N
+  java5_default_enum_item_declaration "  ${@}${name}${value},${comment}"
+  java_default_enum_item_declaration "  ${comment}${@}public static final int _${name}${value};
+public static final ${class} ${name} = new ${class}(_${name});
+"
+  java_default_enum_case "    case _${name}: return ${name};
+"
+  java_association_aggregation_declaration
+    "  ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type} ${name}${value};
+" // multiplicity 1
+    "  ${comment}${@}${visibility}${static}${final}${transient}${volatile}${stereotype}<${type}> ${name}${value};
+" // multiplicity * a..b
+    "  ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type}${multiplicity} ${name}${value};
+" // multiplicity N
+  java_get "get${Name}" final public
+  java_set "set${Name}" public
+  java_default_operation_definition "  ${comment}${@}${visibility}${final}${static}${abstract}${synchronized}${type} ${name}${(}${)}${throws}${staticnl}{
+  ${body}}
+"
+  php_default_src_content "<?php
+${comment}
+${definition}
+?>
+"
+  php_default_class_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
+${members}}
+"
+  php_default_enum_decl "${comment}${visibility}final class ${name} {
+${items}}
+"
+  php_default_external_class_decl "${name}"
+  php_default_interface_decl "${comment}${visibility}interface ${name} {
+${members}}
+"
+  php_default_attribute_declaration "  ${comment}${visibility}${const}${static}${var}${name}${value};
+"
+  php_default_enum_item_decl "  const ${name}${value};${comment}
+"
+  php_default_relation_declaration"  ${comment}${visibility}${const}${static}${var}${name}${value};
+"
+  php_get "get${Name}" final
+  php_set "set${Name}"
+  php_default_operation_definition "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
+{
+  ${body}}
+"
+  python_2_2
+  python_indent_step "    "
+  python_default_src_content "${comment}
+${import}
+${definition}"
+  python_default_class_decl "class ${name}${inherit}:
+${docstring}${members}
+"
+  python_default_enum_decl "class ${name}:
+${docstring}${members}
+"
+  python_default_external_class_decl "${name}"
+  python_default_attribute_declaration "${comment}${self}${name} = ${value}
+" // multiplicity 1
+  "${comment}${self}${name} = ${stereotype}()
+" // multiplicity != 1
+  python_default_enum_item_decl "${comment}${self}${name} = ${value}
+"
+  python_default_relation_declaration"${comment}${self}${name} = ${value}
+" // multiplicity 1
+  "${comment}${self}${name} = ${stereotype}()
+" // multiplicity != 1
+  python_default_composition_declaration"${comment}${self}${name} = ${type}()
+" // multiplicity 1
+  "${comment}${self}${name} = ${stereotype}()
+" // multiplicity != 1
+  python_default_operation_definition "${@}${static}${abstract}def ${name}${(}${)}:
+${docstring}${body}
+"
+  python_default_initoperation_definition "${@}${static}${abstract}def ${name}${(}${p0}${v0}${)}:
+${docstring}super(${class}, ${p0}).__init__()
+${body}
+"
+  python_get "get${Name}"
+  python_set "set${Name}"
+  idl_default_src_content "#ifndef ${MODULE}_${NAME}_H
+#define ${MODULE}_${NAME}_H
+
+${comment}
+${includes}
+${module_start}
+${definition}
+${module_end}
+#endif
+"
+  idl_default_interface_decl "${comment}${abstract}${local}interface ${name}${inherit} {
+${members}};
+"
+  idl_default_valuetype_decl "${comment}${abstract}${custom}valuetype ${name}${inherit} {
+${members}};
+"
+  idl_default_struct_decl "${comment}struct ${name} {
+${members}};
+"
+  idl_default_typedef_decl "${comment}typedef ${type} ${name};
+"
+  idl_default_exception_decl "${comment}exception ${name} {
+${members}};
+"
+  idl_default_union_decl "${comment}union ${name} switch(${switch}) {
+${members}};
+"
+  idl_default_enum_decl "${comment}enum ${name} {
+${items}};
+"
+  idl_default_external_class_decl "${name}
+#include \"${name}.idl\"
+"
+  idl_default_attribute_declaration "  ${comment}${readonly}${attribute}${type} ${name};
+" // multiplicity 1
+  "  ${comment}${readonly}${attribute}${stereotype}<${type}> ${name};
+" // multiplicity * a..b
+  "  ${comment}${readonly}${attribute}${stereotype}<${type},${multiplicity}> ${name};
+" // multiplicity N
+  idl_default_valuetype_attribute_declaration "  ${comment}${visibility}${type} ${name};
+" // multiplicity 1
+  "  ${comment}${visibility}${stereotype}<${type}> ${name};
+" // multiplicity * a..b
+  "  ${comment}${visibility}${stereotype}<${type},${multiplicity}> ${name};
+" // multiplicity N
+  idl_default_const_declaration "  ${comment}const ${type} ${name}${value};
+" // multiplicity 1
+  "  ${comment}const ${stereotype}<${type}> ${name}${value};
+" // multiplicity * a..b
+  "  ${comment}const ${stereotype}<${type},${multiplicity}> ${name}${value};
+" // multiplicity N
+  idl_default_enum_item_declaration "  ${name},${comment}"
+  idl_default_union_item_declaration "  ${comment}case ${case} : ${readonly}${type} ${name};" // multiplicity 1
+  "  ${comment}case ${case} : ${readonly}${stereotype}<${type}> ${name};" // multiplicity * a..b
+  "  ${comment}case ${case} : ${readonly}${stereotype}<${type},${multiplicity}> ${name};" // multiplicity N
+  idl_association_aggregation_declaration
+    "  ${comment}${readonly}${attribute}${type} ${name};
+" // multiplicity 1
+    "  ${comment}${readonly}${attribute}${stereotype}<${type}> ${name};
+" // multiplicity * a..b
+    "  ${comment}${readonly}${attribute}${stereotype}<${type},${multiplicity}> ${name};
+" // multiplicity N
+  idl_valuetype_association_aggregation_declaration
+    "  ${comment}${visibility}${type} ${name};
+" // multiplicity 1
+    "  ${comment}${visibility}${stereotype}<${type}> ${name};
+" // multiplicity * a..b
+    "  ${comment}${visibility}${stereotype}<${type},${multiplicity}> ${name};
+" // multiplicity N
+  idl_union_association_aggregation_declaration
+    "  ${comment}case ${case} : ${readonly}${type} ${name};" // multiplicity 1
+    "  ${comment}case ${case} : ${readonly}${stereotype}<${type}> ${name};" // multiplicity * a..b
+    "  ${comment}case ${case} : ${readonly}${stereotype}<${type},${multiplicity}> ${name};" // multiplicity N
+  idl_get "get_${name}"
+  idl_set "set_${name}"  twoways
+  idl_default_operation_declaration "  ${comment}${oneway}${type} ${name}${(}${)}${raisesnl}${raises};
+"
+  uml_get_name uml uml_set_name uml
+end
diff --git a/doc/uml/idl_includes b/doc/uml/idl_includes
new file mode 100644
index 00000000..fceab64b
--- /dev/null
+++ b/doc/uml/idl_includes
@@ -0,0 +1 @@
+// "a type" "needed idl_includes"
diff --git a/doc/uml/java_imports b/doc/uml/java_imports
new file mode 100644
index 00000000..bbd370ac
--- /dev/null
+++ b/doc/uml/java_imports
@@ -0,0 +1 @@
+// "a type" "needed java_imports"
diff --git a/doc/uml/python_imports b/doc/uml/python_imports
new file mode 100644
index 00000000..4a1bd3a8
--- /dev/null
+++ b/doc/uml/python_imports
@@ -0,0 +1 @@
+// "a type" "needed python_imports"
diff --git a/doc/uml/stereotypes b/doc/uml/stereotypes
new file mode 100644
index 00000000..3680bceb
--- /dev/null
+++ b/doc/uml/stereotypes
@@ -0,0 +1,59 @@
+
+  package_stereotypes  6 "facade" "framework" "model library" "stub" "toplevel" "profile"
+    -_-> 3 "access" "import" "from"
+  end
+  
+  class_stereotypes  19 "actor" "auxiliary" "boundary" "control" "entity" "enum" "enum_pattern" "exception" "focus" "implementationClass" "interface" "@interface" "metaclass" "stereotype" "struct" "type" "typedef" "union" "utility"
+    ---- 4 "list" "set" "vector" "map"
+    ---> 4 "list" "set" "vector" "map"
+    ---|> 4 "{complete,disjoint}" "{incomplete,disjoint}" "{complete,overlapping}" "{incomplete,overlapping}"
+    o--- 4 "list" "set" "vector" "map"
+    *--- 4 "list" "set" "vector" "map"
+    o--> 4 "list" "set" "vector" "map"
+    *--> 4 "list" "set" "vector" "map"
+    -_-> 4 "friend" "from" "import" "instantiate"
+    -_-|> 1 "bind"
+  end
+  
+  use_case_stereotypes 1 "realization"
+  
+    ---|> 4 "{complete,disjoint}" "{incomplete,disjoint}" "{complete,overlapping}" "{incomplete,overlapping}"
+    -_-> 2 "include" "extend"
+  end
+  
+  artifact_stereotypes  7 "document" "file" "script" "source" "text" "library" "executable"
+    -_-> 4 "deploy" "manifest" "import" "from"
+  end
+  
+  attribute_stereotypes  4 "list" "set" "vector" "map"
+  operation_stereotypes  0
+  state_stereotypes  3 "machine" "submachine" "top"
+  activity_stereotypes  0
+  flow_stereotypes  3 "interrupt" "multicast" "multireceive"
+  interruptibleactivityregion_stereotypes  0
+  pseudostate_stereotypes  0
+  stateaction_stereotypes  2 "send-signal" "receive-signal"
+  parameter_stereotypes  0
+  parameterset_stereotypes  0
+  activitynode_stereotypes  0
+  activityaction_stereotypes  0
+  activityobject_stereotypes  2 "datastore" "centralBuffer"
+  expansionregion_stereotypes  0
+  activitypartition_stereotypes  0
+  pin_stereotypes  0
+  component_stereotypes  6 "buildComponent" "entity" "implement" "process" "service" "subsystem"
+  deploymentnode_stereotypes  3 "cpu" "device" "executionEnvironment"
+  classview_stereotypes  0
+  usecaseview_stereotypes  0
+  componentview_stereotypes  0
+  deploymentview_stereotypes  0
+  classdiagram_stereotypes  0
+  seqdiagram_stereotypes  0
+  msg_stereotypes  0
+  coldiagram_stereotypes  0
+  usecasediagram_stereotypes  0
+  statediagram_stereotypes  0
+  activitydiagram_stereotypes  0
+  componentdiagram_stereotypes  0
+  deploymentdiagram_stereotypes  0
+end
diff --git a/doc/uml/tools b/doc/uml/tools
new file mode 100644
index 00000000..3579028b
--- /dev/null
+++ b/doc/uml/tools
@@ -0,0 +1,18 @@
+// 'tool' "the executable" "displayed string" {target}+
+tool "HTML documentation" "ghtml" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
+tool "HTML doc. (flat)" "ghtml -flat" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
+tool "HTML doc. (svg)" "ghtml -svg" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
+tool "HTML doc. (flat, svg)" "ghtml -flat -svg" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
+tool "Generate .pro" "gpro" Artifact
+tool "Import Rose" "irose" Project Package
+tool "C++ utilities" "cpp_util" Class
+tool "Generate XMI 1.2" "gxmi" Project
+tool "Generate XMI 2.1" "gxmi2" Project
+tool "Import XMI 2.1" "ixmi2" Project Package
+tool "C++ state machine" "stmgen" State
+tool "Use case wizard" "usecasewizard" UseCase
+tool "Check-in" "file_control ci" Project Package
+tool "Check-out" "file_control co" Project Package
+tool "Deploy classes" "deplcl" ClassView
+tool "Global Change" "global_change" Class Project Package ClassView DeploymentView
+tool "Uml projection" "uml_proj" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue Project Package ClassView
diff --git a/doc/uml/uml.prj b/doc/uml/uml.prj
new file mode 100644
index 00000000..078dae9e
--- /dev/null
+++ b/doc/uml/uml.prj
@@ -0,0 +1,43 @@
+format 70
+"uml"
+  revision 3
+  modified_by 2 "hut"
+
+
+  
+  // class settings
+  default_attribute_visibility private default_relation_visibility private default_operation_visibility public
+  //class diagram settings
+  draw_all_relations yes hide_attributes no hide_operations no hide_getset_operations no show_members_full_definition no show_members_visibility no show_members_stereotype no show_members_multiplicity no show_members_initialization no show_attribute_modifiers no member_max_width 127 show_parameter_dir yes show_parameter_name yes package_name_in_tab no class_drawing_mode natural drawing_language uml show_context_mode no auto_label_position yes show_relation_modifiers no show_relation_visibility no show_infonote no shadow yes show_stereotype_properties no
+  //use case diagram settings
+  package_name_in_tab no show_context no auto_label_position yes draw_all_relations yes class_drawing_mode actor shadow yes show_stereotype_properties no
+  //sequence diagram settings
+  show_full_operations_definition no write_horizontally yes class_drawing_mode natural drawing_language uml draw_all_relations yes shadow yes show_stereotype_properties no
+  //collaboration diagram settings
+  show_full_operations_definition no show_hierarchical_rank no write_horizontally yes drawing_language uml package_name_in_tab no show_context no draw_all_relations yes shadow yes show_stereotype_properties no
+  //object diagram settings
+   write_horizontally yes package_name_in_tab no show_context no auto_label_position yes draw_all_relations yes shadow yes show_stereotype_properties no
+  //component diagram settings
+  package_name_in_tab no show_context no auto_label_position yes draw_all_relations yes shadow yes
+  draw_component_as_icon no show_component_req_prov no show_component_rea no show_stereotype_properties no
+  //deployment diagram settings
+  package_name_in_tab no show_context no write_horizontally yes auto_label_position yes draw_all_relations yes shadow yes
+  draw_component_as_icon no show_component_req_prov no show_component_rea no show_stereotype_properties no
+  //state diagram settings
+  package_name_in_tab no show_context no auto_label_position yes write_trans_label_horizontally yes show_trans_definition no draw_all_relations yes shadow yes
+  show_activities yes region_horizontally yes drawing_language uml show_stereotype_properties no
+  //activity diagram settings
+  package_name_in_tab no show_context no show_opaque_action_definition no auto_label_position yes write_flow_label_horizontally no draw_all_relations yes shadow yes
+  show_infonote yes drawing_language uml show_stereotype_properties no
+  
+  class_color yellow duration_color transparent continuation_color gray note_color blue fragment_color transparent subject_color transparent usecase_color yellow package_color transparent component_color green artifact_color green deploymentnode_color gray state_color yellow stateaction_color transparent activity_color transparent activityregion_color transparent activitypartition_color transparent activityaction_color transparent parameterpin_color white 
+  font_size 13
+  diagram_format A4
+
+  mark_for_import
+  
+  package_ref 128002 // ranger
+
+  package_ref 134530 // builtin
+
+end