diff --git a/lib/pupa/models/base.rb b/lib/pupa/models/base.rb
index <HASH>..<HASH> 100644
--- a/lib/pupa/models/base.rb
+++ b/lib/pupa/models/base.rb
@@ -84,9 +84,9 @@ module Pupa
         self.json_schema = if Hash === value
           value
         elsif Pathname.new(value).absolute?
-          value
+          File.read(value)
         else
-          File.expand_path(File.join('..', '..', '..', 'schemas', "#{value}.json"), __dir__)
+          File.read(File.expand_path(File.join('..', '..', '..', 'schemas', "#{value}.json"), __dir__))
         end
       end
     end
@@ -164,7 +164,7 @@ module Pupa
     # @raises [JSON::Schema::ValidationError] if the object is invalid
     def validate!
       if self.class.json_schema
-        # JSON::Validator#initialize_data runs fastest if given a hash.
+        # JSON::Validator#initialize_schema runs fastest if given a hash.
         JSON::Validator.validate!(self.class.json_schema, stringify_keys(to_h))
       end
     end
massively improve running time by reading schema files once