added higher-order macro to other functions