`print.higgins` <-
function(x, type = "I2", na.print = "", ...) {
   if(is.na(x$H[1,1])) {
      warning("No results found from higgins")
   } else {
      with(x,
	   { p = round(pchisq(Q, k - 1, lower.tail = FALSE), 4)
         if(type == "both") {
            temp <- cbind(H[,1:2], p, round(H[,4:6], 2),
               round(100 * I2[,4:6]))
            print(as.matrix(temp), na.print = na.print, ...)
         } else if(type == "H") {
            H <- cbind(H[,1:2], p, round(H[,4:6], 2)) # round H to 2dp
            print(as.matrix(H), na.print = na.print, ...)
         } else if(type == "I2") {
            I2 <- cbind(I2[,1:2], p, round(100 * I2[,4:6])) # I2 as percent
            print(as.matrix(I2), na.print = na.print, ...)
         }
         else {
            warning("type must be H, I2, or both")
         }
	  })
   }
   invisible(x)
}
