Revert "Revert "asdf""

This reverts commit 4d07a2ffde94d7e90fb9c88466e5359b675d70df.
Revert "Revert "fix top example""

This reverts commit 250d787afeda99ac59e8ae4b7e08c9d76306f7ff.
Revert "Revert "only listen to close event once""

This reverts commit 5857a00708fc5c5f60ca278e7f81dfe69cb442e4.