added a way to remove listeners