Rework to allow a separate access denied handler per listener (type)