if_exist_else = function( name, lst, default_val ){
if( name %in% names(lst)){ return( lst[[name]] ) }else{ return( default_val ) }
}
get_pkg_fun = function(x) {
if(length(grep("::", x))>0) { parts<-strsplit(x, "::")[[1]] getExportedValue(parts[1], parts[2]) } else { x }
}