Refactor PvP listening code to separate class