implemented addListeners with tests, addContextListeners without tests, removeListeners without tests