Hide some listener implementation details from the API