add smooth publish support