added better arrow object checking to macros