Index: ruby/trunk/lib/models/assumed_library_types.rb
===================================================================
--- ruby/trunk/lib/models/assumed_library_types.rb	(revision 127)
+++ ruby/trunk/lib/models/assumed_library_types.rb	(revision 128)
@@ -446,5 +446,5 @@
 
       def years=(years)
-        unless years.nil? || years > 0
+        unless years.nil? || years >= 0
           raise ArgumentError, 'years must be above zero'
         end
@@ -453,5 +453,5 @@
 
       def months=(months)
-        unless months.nil? || months > 0
+        unless months.nil? || months >= 0
           raise ArgumentError, 'months must be above zero'
         end
@@ -460,5 +460,5 @@
 
       def weeks=(weeks)
-        unless weeks.nil? || weeks > 0
+        unless weeks.nil? || weeks >= 0
           raise ArgumentError, 'weeks must be above zero'
         end
@@ -467,5 +467,5 @@
 
       def days=(days)
-        unless days.nil? || days > 0
+        unless days.nil? || days >= 0
           raise ArgumentError, 'days must be above zero'
         end
@@ -474,5 +474,5 @@
 
       def hours=(hours)
-        unless hours.nil? || hours > 0
+        unless hours.nil? || hours >= 0
           raise ArgumentError, 'hours must be above zero'
         end
@@ -481,5 +481,5 @@
 
       def minutes=(minutes)
-        unless minutes.nil? || minutes > 0
+        unless minutes.nil? || minutes >= 0
           raise ArgumentError, 'minutes must be above zero'
         end
@@ -488,5 +488,5 @@
 
       def seconds=(seconds)
-        unless seconds.nil? || seconds > 0
+        unless seconds.nil? || seconds >= 0
           raise ArgumentError, 'seconds must be above zero'
         end
@@ -495,5 +495,5 @@
 
       def fractional_second=(fractional_second)
-        unless fractional_second.nil? || (fractional_second > 0 && fractional_second < 1.0)
+        unless fractional_second.nil? || (fractional_second >= 0 && fractional_second < 1.0)
           raise ArgumentError, 'fractional_second must be between 0.0 and 1.0'
         end
Index: ruby/trunk/lib/models/rm.rb
===================================================================
--- ruby/trunk/lib/models/rm.rb	(revision 127)
+++ ruby/trunk/lib/models/rm.rb	(revision 128)
@@ -36,4 +36,8 @@
       autoload :Quantity, "rm/data_types/quantity.rb"
     end
+
+    module Data_Structures
+      autoload :Data_Structure, "rm/data_structure.rb"
+    end
   end
 
Index: ruby/trunk/lib/models/rm/common/archetyped.rb
===================================================================
--- ruby/trunk/lib/models/rm/common/archetyped.rb	(revision 127)
+++ ruby/trunk/lib/models/rm/common/archetyped.rb	(revision 128)
@@ -16,19 +16,25 @@
         class Pathable
           attr_accessor :parent
+
           def initialize(parent = nil)
             @parent = parent
           end
+
           def item_at_path(path)
             raise NotImplementError, "item_at_path must be implemented"
           end
+
           def items_at_path(path)
             raise NotImplementError, "items_at_path must be implemented"
           end
+
           def path_exists?(path)
             raise NotImplementError, "path_exists? must be implemented"
           end
+
           def path_of_item(item)
             raise NotImplementError, "path_of_item must be implemented"
           end
+
           def path_unique(path)
             raise NotImplementError, "path_unique must be implemented"
@@ -40,4 +46,5 @@
           attr_reader :archetype_node_id, :name, :links
           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)
Index: ruby/trunk/lib/models/rm/data_structure.rb
===================================================================
--- ruby/trunk/lib/models/rm/data_structure.rb	(revision 128)
+++ ruby/trunk/lib/models/rm/data_structure.rb	(revision 128)
@@ -0,0 +1,16 @@
+# rm::data_structures
+# class DATA_STRUCTURE
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140447518205_872539_864Report.html
+# refs #59
+
+module OpenEHR
+  module RM
+    module Data_Structures
+      class Data_Structure < OpenEHR::RM::Common::Archetyped::Locatable
+        def as_hierarchy
+          raise NotImplementedError, "as_hirarchy must be implemented"
+        end
+      end
+    end # of Data_Structures
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/models/rm/data_structures/data_structure.rb
===================================================================
--- ruby/trunk/lib/models/rm/data_structures/data_structure.rb	(revision 127)
+++ 	(revision )
@@ -1,11 +1,0 @@
-# rm::data_structures
-# class DATA_STRUCTURE
-# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140447518205_872539_864Report.html
-# refs #59
-module Data_Structures
-  class Data_Structure 
-    def as_hierarchy
-      raise NotImplementError, "as_hirarchy must be implemented"
-    end
-  end
-end
Index: ruby/trunk/lib/models/tests/rm/test_common.rb
===================================================================
--- ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 127)
+++ ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 128)
@@ -25,4 +25,10 @@
     assert_nothing_raised(Exception){@archetyped = OpenEHR::RM::Common::Archetyped::Archetyped.new(@archetype_id, '1.0.1')}
     assert_nothing_raised(Exception){@link = OpenEHR::RM::Common::Archetyped::Link.new(OpenEHR::RM::Data_Types::Text::DV_Text.new("generic"), OpenEHR::RM::Data_Types::URI::DV_EHR_URI.new("ehr://test/"),OpenEHR::RM::Data_Types::Text::DV_Text.new("problem"))}
+    assert_nothing_raised(Exception){
+      @pathable = OpenEHR::RM::Common::Archetyped::Pathable.new }
+    name = OpenEHR::RM::Data_Types::Text::DV_Text.new('blood')
+    links = Set.new([@uid_based_id])
+    assert_nothing_raised(Exception){
+      @locatable = OpenEHR::RM::Common::Archetyped::Locatable.new('at0001',name,links)}
   end
 
@@ -30,4 +36,6 @@
     assert_instance_of OpenEHR::RM::Common::Archetyped::Archetyped, @archetyped
     assert_instance_of OpenEHR::RM::Common::Archetyped::Link, @link
+    assert_instance_of OpenEHR::RM::Common::Archetyped::Pathable, @pathable
+    assert_instance_of OpenEHR::RM::Common::Archetyped::Locatable, @locatable
   end
 
