some progress with eval function macros at last