diff --git a/TODO b/TODO
index 913a087f..dd08db4b 100644
--- a/TODO
+++ b/TODO
@@ -1,15 +1,4 @@
-- try:
-
- $ vipsthumbnail Chicago.png --vips-concurrency=1
- memory: high-water mark 180.57 MB
- $ vipsthumbnail Chicago.png --vips-concurrency=4
- memory: high-water mark 180.57 MB
-
- shouldn't memuse drop with concurrency 1 ?
-
-
-
- vips_object_unref_outputs() needs docs ... bindings will need it
diff --git a/libvips/iofuncs/object.c b/libvips/iofuncs/object.c
index b2a46903..675c904f 100644
--- a/libvips/iofuncs/object.c
+++ b/libvips/iofuncs/object.c
@@ -67,16 +67,18 @@
* following major features:
*
* Functional class creation Vips objects have a very
- * regular
- * lifecycle: initialise, build, use, destroy. They behave rather like
+ * regular lifecycle: initialise, build, use, destroy. They behave rather like
* function calls and are free of side-effects.
*
* Run-time introspection Vips objects can be fully
- * introspected at
- * run-time. There is not need for separate source-code analysis.
+ * introspected at run-time. There is not need for separate source-code
+ * analysis.
*
* Command-line interface Any vips object can be run from
* the command-line with the `vips` driver program.
+ *
+ *
+ *
*/
/**
diff --git a/libvips/iofuncs/operation.c b/libvips/iofuncs/operation.c
index 049c8859..79c8d4df 100644
--- a/libvips/iofuncs/operation.c
+++ b/libvips/iofuncs/operation.c
@@ -93,24 +93,12 @@
* arguments setting them. Once you have set all arguments, use
* vips_cache_operation_build() to look up the operation in the cache and
* either build or dup it. If something goes wrong, you'll need to use
- * vips_object_unref_outputs() and g_object_unref(). :wq
- *
-
-
- *
- * Use vips_call() to call any vips operation from C. If you want to search
- * for operations, see what arguments they need, and test argument
- * properties, see
- * object. Each operation also has a
- * wrapper function, of course, to give type safety for required arguments.
- *
- * vips_call_split() lets you run an operation with the optional and required
- * arguments split into separate lists. vips_call_split_option_string() lets
- * you set options from strings as well.
+ * vips_object_unref_outputs() and g_object_unref() to free the
+ * partially-built object.
*
* Use vips_call_argv() to run any vips operation from a command-line style
- * argc/argv array.
- *
+ * argc/argv array. This is the thing used by the vips main program to
+ * implement the vips command-line interface.
*/
/**