reorganize overloads so the listener arguments are correctly inferred without failing