publish retain added (not tested)