add class protocol