Good work hipster. I especially like the format you present your ideas. And instead of right away promoting this RRFC as a standard, I act like it's a request for comments. Comments you asked for, comments you'll get: > 1. Version check syntax How about changing the syntax, so that instead of saying require "thread >= 4.2" one would say require "thread" { |version| version >= 4.2 } where an object passed to a block would be a Version object complying what ever standard versioning policy Ruby starts to promote and adhere to. If we would like to have a smarter loader, which loads only specified version, it we could have the same syntax; utilize the block. Otherwise I'd like to say require "thread", Version.new.greater_than("4.2") and effectively stuff all the complicated logic somehow to an object which is passed along when requiring. Actually the requiring could objectified too, so that one would be able to redefine the order in which files get certified by class Version. And require would be left as a shorthand to really write: Require.new("thread", MyOwnCertifier.new) And of course the certifier could look the class closer, like calculating the md5 sum for it, and comparing it to the one residing at read-only-media. :) > 2.1 A more fine-grained scheme Although I think javadoc have been utilizing version numbering per method, I have no idea how they are useful, or if there's any tools which really use this info. I somehow doubt there's no use, but even if there's we could use specially formatted comments to have the same effect. - Aleksi