macro is the best among these