wip: still inoperative, but much better macros, support parent fields