Remove Finalize() from Emitter interface and replace it with WaitForClose() function. Change Emitter.Return() to return next pointer.