added publisher for observer pattern