work pretty well when macro file does not exist same place as current dir
more smart way to load macro
add arg to load udf file at init, but not fully tested