Better event listening & cleanup: potentional memory leaks --