added macroabletrait