slight listener interface change