fixed gc (but macro is broken)