macro expansion fully debugged!