Index: /ruby/trunk/lib/models/rm/common/archetyped.rb
===================================================================
--- /ruby/trunk/lib/models/rm/common/archetyped.rb	(revision 161)
+++ /ruby/trunk/lib/models/rm/common/archetyped.rb	(revision 162)
@@ -47,13 +47,12 @@
           attr_accessor :uid, :archetype_details, :feeder_audit
 
-          def initialize(archetype_node_id, name, links, parent=nil, uid=nil, archetype_details=nil, feeder_audit=nil)
-            super(parent)
-            self.archetype_node_id = archetype_node_id
-            self.name = name
-            self.links = links
-            self.uid = uid
-            self.archetype_details = archetype_details
-            self.feeder_audit = feeder_audit
-            self.parent = parent
+          def initialize(args = { })
+            super(args[:parent])
+            self.archetype_node_id = args[:archetype_node_id]
+            self.name = args[:name]
+            self.links = args[:links]
+            self.uid = args[:uid]
+            self.archetype_details = args[:archetype_details]
+            self.feeder_audit = args[:feeder_audit]
           end
           
@@ -71,4 +70,5 @@
             @links = links
           end
+
           def item_at_path(path)
             if !@path.nil?
@@ -78,15 +78,20 @@
             end
           end
+
           def items_at_path(path)
             raise NotImplementError, "items_at_path must be implemented"
           end
+
           def path_exists?
             raise NotImplementError, "path_exists? must be implemented"
           end
+
           def path_unique
             raise NotImplementError, "path_unique must be implemented"
           end
+
           def concept
           end
+
           def is_archetype_root?
             !archetype_details.nil?
Index: /ruby/trunk/lib/models/rm/common/directory.rb
===================================================================
--- /ruby/trunk/lib/models/rm/common/directory.rb	(revision 161)
+++ /ruby/trunk/lib/models/rm/common/directory.rb	(revision 162)
@@ -2,4 +2,5 @@
 # http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140536622627_218703_7149Report.html
 # Ticket refs #63
+include OpenEHR::RM::Data_Types::Text
 module OpenEHR
   module RM
@@ -10,7 +11,8 @@
           attr_reader :folders
 
-          def initialize(archetype_node_id, name, links, parent=nil, folders=nil, items=nil, uid = nil, archetype_details=nil, feeder_audit=nil)
-            super(archetype_node_id, name, links, parent, uid, archetype_details, feeder_audit)
-            self.folders = folders
+          def initialize(args = { })
+            super(args)
+            self.folders = args[:folders]
+            self.items = args[:items]
           end
 
Index: /ruby/trunk/lib/models/rm/data_structure.rb
===================================================================
--- /ruby/trunk/lib/models/rm/data_structure.rb	(revision 161)
+++ /ruby/trunk/lib/models/rm/data_structure.rb	(revision 162)
@@ -8,4 +8,8 @@
     module Data_Structures
       class Data_Structure < OpenEHR::RM::Common::Archetyped::Locatable
+        def initialize(args = { })
+          super(args)
+        end
+
         def as_hierarchy
           raise NotImplementedError, "as_hirarchy must be implemented"
Index: /ruby/trunk/lib/models/tests/rm/test_common.rb
===================================================================
--- /ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 161)
+++ /ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 162)
@@ -8,4 +8,5 @@
 include OpenEHR::RM::Common::Generic
 include OpenEHR::RM::Common::Change_Control
+include OpenEHR::RM::Common::Directory
 include OpenEHR::RM::Support::Identification
 include OpenEHR::RM::Data_Types::Basic
@@ -44,5 +45,7 @@
     links = Set.new([@uid_based_id])
     assert_nothing_raised(Exception){
-      @locatable = OpenEHR::RM::Common::Archetyped::Locatable.new('at0001',name,links)}
+      @locatable = Locatable.new(:archetype_node_id => 'at0001',
+                                 :name => name,
+                                 :links => links)}
     provider = Party_Identified.new(:name => 'NERV')
     location = Party_Identified.new(:name => 'GEOFRONT')
@@ -291,6 +294,14 @@
 class RM_Common_Directory_Test < Test::Unit::TestCase
   def setup
-    dv_text = OpenEHR::RM::Data_Types::Text::DV_Text.new('root')
-    assert_nothing_raised(Exception){@folder = OpenEHR::RM::Common::Directory::Folder.new('at0000', dv_text, nil)}
+    archetype_node_id = 'at0001'
+    name = DV_Text.new('folder_test')
+    object_id = Object_ID.new('1.1.1')
+    object_ref = Object_Ref.new('local', 'PARTY', object_id)
+    assert_nothing_raised(Exception){
+      @folder = Folder.new(:archetype_node_id => archetype_node_id,
+                           :name => name,
+                           :items => [object_ref])}
+    
+
   end
   
@@ -300,6 +311,6 @@
 
   def test_folder
-    assert_equal 'at0000', @folder.archetype_node_id
-    assert_equal 'root', @folder.name.value
+    assert_equal 'at0001', @folder.archetype_node_id
+    assert_equal 'local', @folder.items[0].namespace
   end
 end
Index: /ruby/trunk/lib/models/tests/rm/test_data_structure.rb
===================================================================
--- /ruby/trunk/lib/models/tests/rm/test_data_structure.rb	(revision 161)
+++ /ruby/trunk/lib/models/tests/rm/test_data_structure.rb	(revision 162)
@@ -13,5 +13,7 @@
     links = Set.new([uid])
     assert_nothing_raised(Exception){
-      @data_structure = OpenEHR::RM::Data_Structures::Data_Structure.new('test',name,links) }
+      @data_structure = OpenEHR::RM::Data_Structures::Data_Structure.new(:archetype_node_id => 'test',
+                                                                         :name => name,
+                                                                         :links => links) }
   end
 
