macro abstract