broke it down into smaller macros