diff --git a/scripts/regression_tests.pd b/scripts/regression_tests.pd
index 097fcc19bdd84175e2b81246f24df265c1437dcb..b5dad12db74c9f0e7f1058c933614ecb969265d6 100644
--- a/scripts/regression_tests.pd
+++ b/scripts/regression_tests.pd
@@ -1,4 +1,4 @@
-#N canvas 340 157 750 572 12;
+#N canvas 341 181 750 572 12;
 #X obj 465 281 r \$0-result;
 #X obj 212 239 bng 31 250 50 0 empty empty Run_all 39 13 0 12 -262144
 -1 -1;
@@ -25,13 +25,13 @@ is handy for some binbuf tests.;
 #X obj 198 659 rtest makefilename_double_percent;
 #X obj 198 710 rtest makefilename_code_coverage;
 #N canvas 461 242 450 323 (subpatch) 0;
-#X restore 201 2285 pd;
+#X restore 201 2405 pd;
 #X obj 198 761 rtest makefilename_default;
 #X obj 198 812 rtest makefilename_default_bang;
 #X obj 198 863 rtest makefilename_float;
 #X obj 198 914 rtest makefilename_symbol;
 #X obj 198 965 rtest makefilename_bang;
-#X obj 198 1016 rtest drawtext-typecheck;
+#X obj 198 1016 rtest drawtext_typecheck;
 #X obj 465 308 utils/print-result;
 #X obj 56 231 utils/quit-if-nogui;
 #X obj 198 1071 rtest list_cat_clear;
@@ -59,6 +59,8 @@ is handy for some binbuf tests.;
 #X obj 198 2031 rtest type_hint_coverage;
 #X obj 198 2086 rtest route_reject_bang;
 #X obj 198 2141 rtest text_sort;
+#X obj 198 2196 rtest log_right_inlet;
+#X obj 198 2251 rtest log_base;
 #X connect 0 0 27 0;
 #X connect 1 0 4 0;
 #X connect 2 0 42 0;
@@ -103,3 +105,5 @@ is handy for some binbuf tests.;
 #X connect 50 0 51 0;
 #X connect 51 0 52 0;
 #X connect 52 0 53 0;
+#X connect 53 0 54 0;
+#X connect 54 0 55 0;
diff --git a/scripts/regression_tests/drawtext-typecheck.pd b/scripts/regression_tests/drawtext_typecheck.pd
similarity index 100%
rename from scripts/regression_tests/drawtext-typecheck.pd
rename to scripts/regression_tests/drawtext_typecheck.pd
diff --git a/scripts/regression_tests/log_base.pd b/scripts/regression_tests/log_base.pd
new file mode 100644
index 0000000000000000000000000000000000000000..dfa72a7db3b2a0e48a452f737fd93d01a0b2aae5
--- /dev/null
+++ b/scripts/regression_tests/log_base.pd
@@ -0,0 +1,24 @@
+#N canvas 329 252 685 317 12;
+#X obj 57 22 inlet;
+#X obj 57 240 outlet;
+#X obj 173 111 log;
+#X msg 207 83 2;
+#X msg 173 83 2;
+#X obj 57 51 trigger bang bang bang;
+#X obj 173 140 == 1;
+#X msg 57 80 2;
+#X obj 57 169 log 2;
+#X obj 57 198 list append log's argument sets the base;
+#X obj 173 169 list append log's right inlet sets the base;
+#X connect 0 0 5 0;
+#X connect 2 0 6 0;
+#X connect 3 0 2 1;
+#X connect 4 0 2 0;
+#X connect 5 0 7 0;
+#X connect 5 1 4 0;
+#X connect 5 2 3 0;
+#X connect 6 0 10 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 1 0;
+#X connect 10 0 1 0;
diff --git a/scripts/regression_tests/log_right_inlet.pd b/scripts/regression_tests/log_right_inlet.pd
new file mode 100644
index 0000000000000000000000000000000000000000..c2b6f680402b5897d9057f85ae8e9571fcab20b7
--- /dev/null
+++ b/scripts/regression_tests/log_right_inlet.pd
@@ -0,0 +1,14 @@
+#N canvas 328 228 685 317 12;
+#X obj 57 22 inlet;
+#X obj 57 230 outlet;
+#X obj 57 111 ../utils/object-test inlets;
+#X msg 57 81 symbol log;
+#X obj 57 140 == 2;
+#X obj 57 169 list append log has a right inlet for the base;
+#X obj 57 51 bang;
+#X connect 0 0 6 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 0;
+#X connect 5 0 1 0;
+#X connect 6 0 3 0;
diff --git a/scripts/utils/creation-test.pd b/scripts/utils/creation-test.pd
index 874ae99e2fb27ee85a51abafa3a2aeaf1d25a748..149bd0a6d84e719cfa6c2cf06d149d88a46fdd76 100644
--- a/scripts/utils/creation-test.pd
+++ b/scripts/utils/creation-test.pd
@@ -1,59 +1,18 @@
-#N canvas 311 60 683 597 12;
-#X text 97 22 Simple abstraction to test object creation;
-#N canvas 82 171 450 346 \$0-test 0;
-#X obj 200 20 receive 1004-in;
-#X obj 200 60 canvasinfo;
-#X obj 200 100 send 1004-out;
-#X obj 0 0 cxc/hex2dec;
+#N canvas 247 65 536 318 12;
+#X obj 46 36 inlet;
+#X obj 46 65 object-test class;
+#X obj 46 94 select text;
+#X msg 46 123 0;
+#X obj 120 123 b;
+#X msg 120 152 1;
+#X obj 46 202 outlet;
+#X text 107 193 simple creation test. if the object we tried to create
+has the "text" class \, we know it's a broken object. Otherwise \,
+it should have created successfully.;
 #X connect 0 0 1 0;
 #X connect 1 0 2 0;
-#X restore 110 329 pd \$0-test;
-#X obj 28 22 inlet;
-#X obj 71 141 list prepend obj 0 0;
-#X obj 71 166 list trim;
-#X obj 110 231 send pd-\$0-test;
-#X obj 28 97 trigger anything anything bang;
-#X obj 28 261 list prepend find;
-#X obj 235 124 f \$0;
-#X msg 262 93 bang;
-#X obj 28 316 send \$0-in;
-#X obj 28 345 r \$0-out;
-#X msg 235 151 clear \, obj 200 20 receive \$1-in \, obj 200 60 canvasinfo
-\, obj 200 100 send \$1-out \, connect 0 0 1 0 \, connect 1 0 2 0;
-#X msg 28 370 list \$1;
-#X obj 28 395 t b a;
-#X obj 28 447 objectinfo;
-#X msg 28 420 class;
-#X obj 28 286 list trim;
-#X text 63 53 for everything except receive \, send \, and canvasinfo
-\, or comments;
-#X obj 28 472 select text;
-#X msg 28 497 0;
-#X obj 102 497 b;
-#X msg 102 522 1;
-#X obj 28 559 outlet;
-#X obj 71 191 unpost;
-#X text 126 192 <- supress creation error message;
-#X connect 2 0 6 0;
-#X connect 3 0 4 0;
-#X connect 4 0 24 0;
-#X connect 6 0 7 0;
-#X connect 6 1 3 0;
-#X connect 6 2 8 0;
-#X connect 7 0 17 0;
-#X connect 8 0 12 0;
-#X connect 9 0 8 0;
-#X connect 11 0 13 0;
-#X connect 12 0 5 0;
-#X connect 13 0 14 0;
-#X connect 14 0 16 0;
-#X connect 14 1 15 1;
-#X connect 15 0 19 0;
-#X connect 16 0 15 0;
-#X connect 17 0 10 0;
-#X connect 19 0 20 0;
-#X connect 19 1 21 0;
-#X connect 20 0 23 0;
-#X connect 21 0 22 0;
-#X connect 22 0 23 0;
-#X connect 24 1 5 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
diff --git a/scripts/utils/object-test.pd b/scripts/utils/object-test.pd
new file mode 100644
index 0000000000000000000000000000000000000000..70308509056d3579d7b4f6e72b9f6333aedbc18a
--- /dev/null
+++ b/scripts/utils/object-test.pd
@@ -0,0 +1,46 @@
+#N canvas 144 162 683 597 12;
+#N canvas 82 171 450 346 \$0-test 0;
+#X restore 110 329 pd \$0-test;
+#X obj 28 22 inlet;
+#X obj 71 141 list prepend obj 0 0;
+#X obj 71 166 list trim;
+#X obj 110 231 send pd-\$0-test;
+#X obj 28 97 trigger anything anything bang;
+#X obj 28 261 list prepend find;
+#X obj 235 124 f \$0;
+#X msg 262 93 bang;
+#X obj 28 316 send \$0-in;
+#X obj 28 345 r \$0-out;
+#X msg 235 151 clear \, obj 200 20 receive \$1-in \, obj 200 60 canvasinfo
+\, obj 200 100 send \$1-out \, connect 0 0 1 0 \, connect 1 0 2 0;
+#X msg 28 370 list \$1;
+#X obj 28 395 t b a;
+#X obj 28 500 objectinfo;
+#X obj 28 286 list trim;
+#X text 63 53 for everything except receive \, send \, and canvasinfo
+\, or comments;
+#X obj 28 529 outlet;
+#X obj 71 191 unpost;
+#X text 126 192 <- supress creation error message;
+#X obj 28 427 list append \$1;
+#X text 97 22 Simple \, light wrapper around [objectinfo] methods;
+#X obj 28 456 list trim;
+#X connect 1 0 5 0;
+#X connect 2 0 3 0;
+#X connect 3 0 18 0;
+#X connect 5 0 6 0;
+#X connect 5 1 2 0;
+#X connect 5 2 7 0;
+#X connect 6 0 15 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 10 0 12 0;
+#X connect 11 0 4 0;
+#X connect 12 0 13 0;
+#X connect 13 0 20 0;
+#X connect 13 1 14 1;
+#X connect 14 0 17 0;
+#X connect 15 0 9 0;
+#X connect 18 1 4 0;
+#X connect 20 0 22 0;
+#X connect 22 0 14 0;