Changing all private properties to protected so that the listener can be extended.