You're correct, but why not do the add_child in the signal handler. Also due to the way signal are working, there is no way to store the return value, so your instance will actually never be used.
Edit: I just realized that none of the comments above where made by the original user, so I was kinda confused with the answers.