Why are you adding a public `set` for the publish function?
Is that needed somewhere?