added publish! method