implement concat, re-implementing macro