fix macro bug