abstracting out publishing methods