Why need this macro?