always needs to set after published