Properly register events, exetnd Listener