What does extend do structurally, in terms of where the module lands in the object's lookup chain?module Helpers; def help; "helping"; end; end obj = Object.new obj.extend(Helpers) p obj.singleton_class.ancestors.take(3)