Add a listener, making this partly functional