If we have big if/else blocks, they can probably be submacros