I've learned this the hard way: When returning a value from a D-Bus call, the variant construct must *always* be g_variant_new ("(...)"...
Move the implementation of the Text interface to its own source file, and split it up along widget lines, to avoid it becoming too messy.