replace runtime fieldname reflection with macros