Refactor PL #1: use protocol look-up table