modified listener interface