not sure why the convention msg <- NULL ... if (is.null(msg)) TRUE else msg needs to be changed?