improved: Move destroy() from factory to the pipeline instance. Why? A destructor call is always something, that is executed on a instance (and it's also always a virtual function).
improved: removed the list command, as dbus objects can be already iterated by using a dbus API.