more abstractions for multiple macs