This feels strange to me. The publish method has the contract of making something visible to the users, and then it calls hide! on it's node which does the oposite.. I dunno really =)