Added add/removeListener methods
Added docstrings