diff --git a/src/modules/Gdbm/testsuite.in b/src/modules/Gdbm/testsuite.in
index e1ce5f879ba962ce9f3af2068f7eb013214bed84..433235ff796b84e812efd2fa7243fef3a3ab555b 100644
--- a/src/modules/Gdbm/testsuite.in
+++ b/src/modules/Gdbm/testsuite.in
@@ -1,14 +1,14 @@
 // gdbm
-cond( [[ master()->programs["/precompiled/gdbm"] ]],
+cond( [[ master()->resolv("Gdbm") ]],
 [[
-  define([[GDBM]],[[ (program)"/precompiled/gdbm" ]])
+  define([[GDBM]],[[ Gdbm.gdbm ]])
   test_true(programp(GDBM))
   test_do(destruct(clone(GDBM)))
 
   define([[GDBMTESTS]],
   [[
     test_do(rm("test.gdbm"))
-    test_do(add_efun("GDBMBASE",clone(GDBM,"test.gdbm")))
+    test_do(add_constant("GDBMBASE",clone(GDBM,"test.gdbm")))
     test_true(file_stat("test.gdbm"))
 
     GDBMNULLTEST
diff --git a/src/modules/Gmp/testsuite.in b/src/modules/Gmp/testsuite.in
index 39fd5d4ac9bea8960b8526c428ff260a95f76f6a..7275c9e39f5026f6b12dbed3daedc88396717c1d 100644
--- a/src/modules/Gmp/testsuite.in
+++ b/src/modules/Gmp/testsuite.in
@@ -1,43 +1,42 @@
 // mpz
-cond( [[ master()->programs["/precompiled/mpz"] ]],
+cond( [[ master()->resolv("Gmp") ]],
 [[
-  define([[MPZ]],[[(program)"/precompiled/mpz"]])
-  test_true(programp(MPZ))
-  test_false(clone(MPZ))
-  test_do(destruct(clone(MPZ)))
-
-  test_eq(Mpz(10),10)
-  test_eq(Mpz("10"),10)
-  test_eq(Mpz(10.0),10)
-  test_eq(Mpz("10",8),8)
-  test_eq(Mpz("0",256),'0')
-
-  test_eq(clone(MPZ,99)+1,100)
-  test_eq(clone(MPZ,100)*10,1000)
-  test_eq(clone(MPZ,"100")*10.0,1000)
-  test_eq(clone(MPZ,100.0)*clone(MPZ,3),300)
-  test_eq(clone(MPZ,100.0)/4,25)
-  test_eq(clone(MPZ,42)%10,2)
-  test_eq(clone(MPZ,10)<<1,20)
-  test_eq(clone(MPZ,10)>>1,5)
-  test_eq(clone(MPZ,66)+11,77)
-  test_eq(clone(MPZ,66)-11,55)
-  test_eq(clone(MPZ,17)&18,16)
-  test_eq(clone(MPZ,17)|7,31)
-  test_eq(-clone(MPZ,17),17)
-  test_eq((~clone(MPZ,17)) & 255,0xf0)
-  test_true(stringp((string)clone(MPZ,17)))
-  test_eq((string)clone(MPZ,17),"17")
-  test_true(intp((int)clone(MPZ,17)))
-  test_eq((int)clone(MPZ,17),17)
-  test_false(clone(MPZ,0))
-  test_true(clone(MPZ,1))
-  test_eq(clone(MPZ,17)->powm(2,4711),290)
+  test_true(programp(Gmp.mpz))
+  test_false(clone(Gmp.mpz))
+  test_do(destruct(clone(Gmp.mpz)))
+
+  test_eq(Gmp.mpz(10),10)
+  test_eq(Gmp.mpz("10"),10)
+  test_eq(Gmp.mpz(10.0),10)
+  test_eq(Gmp.mpz("10",8),8)
+  test_eq(Gmp.mpz("0",256),'0')
+
+  test_eq(clone(Gmp.mpz,99)+1,100)
+  test_eq(clone(Gmp.mpz,100)*10,1000)
+  test_eq(clone(Gmp.mpz,"100")*10.0,1000)
+  test_eq(clone(Gmp.mpz,100.0)*clone(Gmp.mpz,3),300)
+  test_eq(clone(Gmp.mpz,100.0)/4,25)
+  test_eq(clone(Gmp.mpz,42)%10,2)
+  test_eq(clone(Gmp.mpz,10)<<1,20)
+  test_eq(clone(Gmp.mpz,10)>>1,5)
+  test_eq(clone(Gmp.mpz,66)+11,77)
+  test_eq(clone(Gmp.mpz,66)-11,55)
+  test_eq(clone(Gmp.mpz,17)&18,16)
+  test_eq(clone(Gmp.mpz,17)|7,31)
+  test_eq(-clone(Gmp.mpz,17),17)
+  test_eq((~clone(Gmp.mpz,17)) & 255,0xf0)
+  test_true(stringp((string)clone(Gmp.mpz,17)))
+  test_eq((string)clone(Gmp.mpz,17),"17")
+  test_true(intp((int)clone(Gmp.mpz,17)))
+  test_eq((int)clone(Gmp.mpz,17),17)
+  test_false(clone(Gmp.mpz,0))
+  test_true(clone(Gmp.mpz,1))
+  test_eq(clone(Gmp.mpz,17)->powm(2,4711),290)
 
   define([[mpz_test_cmp]],[[
-    test_cmp(clone(MPZ,$1), $2)
-    test_cmp($1, clone(MPZ,$2))
-    test_cmp(clone(MPZ, $1), clone(MPZ, $2))
+    test_cmp(clone(Gmp.mpz,$1), $2)
+    test_cmp($1, clone(Gmp.mpz,$2))
+    test_cmp(clone(Gmp.mpz, $1), clone(Gmp.mpz, $2))
   ]])
 
   define([[mpz_test_type1]],[[
diff --git a/src/modules/Gz/testsuite.in b/src/modules/Gz/testsuite.in
index fdc03eb7f782e65352f30754796b29a963041b48..ecff8ba78640aa277ffaa3ff5cd135eff6cdb8c4 100644
--- a/src/modules/Gz/testsuite.in
+++ b/src/modules/Gz/testsuite.in
@@ -1,14 +1,14 @@
-cond([[ master()->programs["/precompiled/gz_inflate"] ]],
+cond([[ master()->resolv("Gz") ]],
 [[
-  test_true(Gz_deflate())
-  test_true(Gz_deflate()->deflate)
-  test_true(Gz_inflate())
-  test_true(Gz_inflate()->inflate)
+  test_true(Gz.deflate())
+  test_true(Gz.deflate()->deflate)
+  test_true(Gz.inflate())
+  test_true(Gz.inflate()->inflate)
 define(dotest,[[
-  test_true(Gz_deflate(1)->deflate($1))
-  test_eq(Gz_inflate()->inflate(Gz_deflate(1)->deflate($1)),$1)
-  test_eq(Gz_inflate()->inflate(Gz_deflate(9)->deflate($1)),$1)
-  test_any([[object o=Gz_deflate(); return Gz_inflate()->inflate(o->deflate($1,o->PARTIAL_FLUSH) + o->deflate($1,o->FINISH))]], [[($1)+($1)]])
+  test_true(Gz.deflate(1)->deflate($1))
+  test_eq(Gz.inflate()->inflate(Gz.deflate(1)->deflate($1)),$1)
+  test_eq(Gz.inflate()->inflate(Gz.deflate(9)->deflate($1)),$1)
+  test_any([[object o=Gz.deflate(); return Gz.inflate()->inflate(o->deflate($1,o->PARTIAL_FLUSH) + o->deflate($1,o->FINISH))]], [[($1)+($1)]])
 ]])
   dotest("")
   dotest("foo")
diff --git a/src/modules/Image/testsuite.in b/src/modules/Image/testsuite.in
index b8a35edf849d18b3b0ca44ca915ed7063d3b1e7a..ec330d6ffaa3197ba0567271f85295985b35ce59 100644
--- a/src/modules/Image/testsuite.in
+++ b/src/modules/Image/testsuite.in
@@ -1,52 +1,52 @@
-cond([[ master()->programs["/precompiled/image"] ]],
+cond([[ master()->resolv("Image") ]],
 [[
-  test_true(programp(Image))
-  test_true(objectp(clone(Image)))
-  test_true(objectp(clone(Image,10,10)))
-  test_true(objectp(clone(Image,10,10,1,1,1)))
-  test_eq(clone(Image,10,12)->xsize(),10))
-  test_eq(clone(Image,10,12)->ysize(),12))
-  test_true(objectp(clone(Image,10,10,1,1,1)->copy()))
-  test_eq(clone(Image,10,12)->copy()->xsize(),10))
-  test_eq(clone(Image,10,12)->copy()->ysize(),12))
-dnl  test_true(objectp(clone(Image,10,10)->crop(2,2,3,3)))
-  test_true(objectp(clone(Image,10,10)->autocrop()))
-  test_true(objectp(clone(Image,10,10)->gray()))
-  test_true(objectp(clone(Image,10,10)->color(2,2,4)))
-  test_true(objectp(clone(Image,10,10)->invert()))
-  test_true(objectp(clone(Image,10,10)->threshold(10,20,30)))
+  test_true(programp(Image.image))
+  test_true(objectp(clone(Image.image)))
+  test_true(objectp(clone(Image.image,10,10)))
+  test_true(objectp(clone(Image.image,10,10,1,1,1)))
+  test_eq(clone(Image.image,10,12)->xsize(),10))
+  test_eq(clone(Image.image,10,12)->ysize(),12))
+  test_true(objectp(clone(Image.image,10,10,1,1,1)->copy()))
+  test_eq(clone(Image.image,10,12)->copy()->xsize(),10))
+  test_eq(clone(Image.image,10,12)->copy()->ysize(),12))
+dnl  test_true(objectp(clone(Image.image,10,10)->crop(2,2,3,3)))
+  test_true(objectp(clone(Image.image,10,10)->autocrop()))
+  test_true(objectp(clone(Image.image,10,10)->gray()))
+  test_true(objectp(clone(Image.image,10,10)->color(2,2,4)))
+  test_true(objectp(clone(Image.image,10,10)->invert()))
+  test_true(objectp(clone(Image.image,10,10)->threshold(10,20,30)))
 dnl matrix
-  test_true(objectp(clone(Image,10,10)->scale(2.1)))
-  test_eq(clone(Image,10,12)->scale(2.0)->xsize(),20)
-  test_eq(clone(Image,10,12)->scale(2.0)->ysize(),24)
-  test_true(objectp(clone(Image,10,10)->scale(0.2)))
-  test_true(objectp(clone(Image,10,10)->scale(2.0,0.2)))
-  test_true(objectp(clone(Image,10,10)->scale(0.2,2.2)))
-  test_true(objectp(clone(Image,10,10)->scale(0.2,2.2)))
-  test_true(objectp(clone(Image,10,10)->scale(0.2,2.2)))
-  test_eq(clone(Image,10,10)->scale(33,57)->xsize(),33)
-  test_eq(clone(Image,10,10)->scale(33,57)->ysize(),57)
-  test_true(stringp(clone(Image,10,10)->toppm()))
+  test_true(objectp(clone(Image.image,10,10)->scale(2.1)))
+  test_eq(clone(Image.image,10,12)->scale(2.0)->xsize(),20)
+  test_eq(clone(Image.image,10,12)->scale(2.0)->ysize(),24)
+  test_true(objectp(clone(Image.image,10,10)->scale(0.2)))
+  test_true(objectp(clone(Image.image,10,10)->scale(2.0,0.2)))
+  test_true(objectp(clone(Image.image,10,10)->scale(0.2,2.2)))
+  test_true(objectp(clone(Image.image,10,10)->scale(0.2,2.2)))
+  test_true(objectp(clone(Image.image,10,10)->scale(0.2,2.2)))
+  test_eq(clone(Image.image,10,10)->scale(33,57)->xsize(),33)
+  test_eq(clone(Image.image,10,10)->scale(33,57)->ysize(),57)
+  test_true(stringp(clone(Image.image,10,10)->toppm()))
 dnl fromppm
-  test_true(stringp(clone(Image,10,10)->toppm()))
-  test_true(stringp(clone(Image,10,10)->togif()))
-  test_true(objectp(clone(Image,10,10)->paste(clone(Image,3,3),2,3)))
+  test_true(stringp(clone(Image.image,10,10)->toppm()))
+  test_true(stringp(clone(Image.image,10,10)->togif()))
+  test_true(objectp(clone(Image.image,10,10)->paste(clone(Image.image,3,3),2,3)))
 dnl past_alpha
 dnl past_mask
-  test_do(clone(Image,10,10)->setcolor(2,2,2))
-  test_do(clone(Image,10,10)->setpixel(2,2,2,2,2))
-  test_do(clone(Image,10,10)->line(2,2,4,4,2,2,2))
-  test_do(clone(Image,10,10)->box(2,2,4,4,2,2,2))
-  test_do(clone(Image,10,10)->circle(2,2,4,4,2,2,2))
+  test_do(clone(Image.image,10,10)->setcolor(2,2,2))
+  test_do(clone(Image.image,10,10)->setpixel(2,2,2,2,2))
+  test_do(clone(Image.image,10,10)->line(2,2,4,4,2,2,2))
+  test_do(clone(Image.image,10,10)->box(2,2,4,4,2,2,2))
+  test_do(clone(Image.image,10,10)->circle(2,2,4,4,2,2,2))
 dnl tuned_box
-  test_eq(clone(Image,10,10)->xsize(),10)
-  test_eq(clone(Image,10,10)->ysize(),10)
-  test_do(clone(Font))
-  test_do(clone(Font)->load("SRCDIR/testfont"))
-  test_any(object o=clone(Font); o->load("SRCDIR/testfont"); return o->height(),19)
-  test_any(object o=clone(Font); o->load("SRCDIR/testfont"); return o->write("foo")->xsize(),23)
-  test_any(object o=clone(Font); o->load("SRCDIR/testfont"); return
+  test_eq(clone(Image.image,10,10)->xsize(),10)
+  test_eq(clone(Image.image,10,10)->ysize(),10)
+  test_do(clone(Image.font))
+  test_do(clone(Image.font)->load("SRCDIR/testfont"))
+  test_any(object o=clone(Image.font); o->load("SRCDIR/testfont"); return o->height(),19)
+  test_any(object o=clone(Image.font); o->load("SRCDIR/testfont"); return o->write("foo")->xsize(),23)
+  test_any(object o=clone(Image.font); o->load("SRCDIR/testfont"); return
 o->write("foo")->ysize(),20)
-dnl  test_any(object o=clone(Font); o->load("SRCDIR/testfont"); o->write("foo"); clone(Image,100,100)->paste_alpha(o); return 1,1)
+dnl  test_any(object o=clone(Image.font); o->load("SRCDIR/testfont"); o->write("foo"); clone(Image.image,100,100)->paste_alpha(o); return 1,1)
 ]])
 
diff --git a/src/modules/Regexp/testsuite.in b/src/modules/Regexp/testsuite.in
index f20433cf9c61b7a05deb69501b0071cf92bf0206..d44d2b192e8ff596581bcda0efe67ed4559d5cb8 100644
--- a/src/modules/Regexp/testsuite.in
+++ b/src/modules/Regexp/testsuite.in
@@ -1,34 +1,34 @@
-// - Here we try the regexp module
-test_true([[programp(regexp)]])
-test_any([[object o; o=clone(regexp); destruct(o); return 1]],1)
+// - Here we try the Regexp module
+test_true([[programp(Regexp)]])
+test_any([[object o; o=clone(Regexp); destruct(o); return 1]],1)
 
-// regexp->create
-test_any([[object o; o=regexp("^.*$"); destruct(o); return 1]],1)
+// Regexp->create
+test_any([[object o; o=Regexp("^.*$"); destruct(o); return 1]],1)
 
-// regexp->match
-test_eq([[regexp("^.*$")->match("")]],1)
-test_eq([[regexp(".*")->match("foo")]],1)
-test_eq([[regexp("^.*$")->match("a")]],1)
-test_eq([[regexp("^.*$")->match("-")]],1)
-test_eq([[regexp("^$")->match("")]],1)
-test_eq([[regexp("^.$")->match("a")]],1)
-test_eq([[regexp("^.$")->match("-")]],1)
-test_eq([[regexp("^[abc]$")->match("-")]],0)
-test_eq([[regexp("^[abc]$")->match("a")]],1)
-test_eq([[regexp("^[abc]$")->match("c")]],1)
-test_eq([[regexp("^[^abc]$")->match("-")]],1)
-test_eq([[regexp("^[^abc]$")->match("a")]],0)
-test_eq([[regexp("^[^abc]$")->match("c")]],0)
-test_eq([[regexp("^a*$")->match("aaaa")]],1)
-test_eq([[regexp("^(a|bb)*$")->match("aabbabb")]],1)
-test_eq([[regexp("^(a|bb)*$")->match("")]],1)
-test_eq([[regexp("^(a|bb)+$")->match("")]],0)
-test_eq([[regexp("^(a|bb)+$")->match("aaa")]],1)
-test_eq([[regexp("^(a|bb)+$")->match("bbb")]],0)
-test_eq([[regexp("^(a|bb)+$")->match("bbaabba")]],1)
-test_eq([[regexp("^a|b$")->match("a")]],1)
-test_eq([[regexp("^a|b$")->match("b")]],1)
+// Regexp->match
+test_eq([[Regexp("^.*$")->match("")]],1)
+test_eq([[Regexp(".*")->match("foo")]],1)
+test_eq([[Regexp("^.*$")->match("a")]],1)
+test_eq([[Regexp("^.*$")->match("-")]],1)
+test_eq([[Regexp("^$")->match("")]],1)
+test_eq([[Regexp("^.$")->match("a")]],1)
+test_eq([[Regexp("^.$")->match("-")]],1)
+test_eq([[Regexp("^[abc]$")->match("-")]],0)
+test_eq([[Regexp("^[abc]$")->match("a")]],1)
+test_eq([[Regexp("^[abc]$")->match("c")]],1)
+test_eq([[Regexp("^[^abc]$")->match("-")]],1)
+test_eq([[Regexp("^[^abc]$")->match("a")]],0)
+test_eq([[Regexp("^[^abc]$")->match("c")]],0)
+test_eq([[Regexp("^a*$")->match("aaaa")]],1)
+test_eq([[Regexp("^(a|bb)*$")->match("aabbabb")]],1)
+test_eq([[Regexp("^(a|bb)*$")->match("")]],1)
+test_eq([[Regexp("^(a|bb)+$")->match("")]],0)
+test_eq([[Regexp("^(a|bb)+$")->match("aaa")]],1)
+test_eq([[Regexp("^(a|bb)+$")->match("bbb")]],0)
+test_eq([[Regexp("^(a|bb)+$")->match("bbaabba")]],1)
+test_eq([[Regexp("^a|b$")->match("a")]],1)
+test_eq([[Regexp("^a|b$")->match("b")]],1)
 
-// regexp->split
-test_equal([[regexp("^(a*)[^a]*$")->split("aaabbb")]],({"aaa"}))
+// Regexp->split
+test_equal([[Regexp("^(a*)[^a]*$")->split("aaabbb")]],({"aaa"}))