glib-free version.  multi-variable.  some options changed.