Split this up to provide some more flexibility but also the macro names were not accurate