factory for posts, not directive