These should all use `g_clear_object` probably - `dispose()` can be called more than once per-instance.