solving the issue of the same parameters being assigned to each term was actually really tricky, needed to make deep copies of objects, involved getting a new JS library