Instead of walking over a list, we now have a direct mapping between protocol families and their respective handlers. This will allow fast lookups.
It was becoming confusing to have protocols and listeners in the same files, split them.