Hi James, > def require source > files = File.new("libcontents").read > source.sub! /.rb/ ,"" > if files =~ Regexp.new(source + ".rb") > system "tar -Ozxf rubylib.tar.gz #{source}.rb > /tmp/#{source}.rb" > super "/tmp/#{source}.rb" > File.delete "/tmp/#{source}.rb" This is a really cool thing! What I see you could improve: 1. Error handling. What if a file is not there? What if the archive is broken? What if out of disk space? 2. Execution time. This is in "quadratic time". This means that if you have twice the files, you quadruple your time. This can be improved by switching to another format: (a) usual file hierarchy but with support for .gz (b) tar archive, not gzipped, but containing only .gz files (c) .zip file 3. Not using a temporary file. This would require a change to the built-in "require" method itself. By the way, in which context do you define require? in module Kernel ? if so, how come can you use super? matju