experimental macro support

Why do we need this anyway?