add publisher class
add consumer class