new struct for publish