optimize substitution so that it only substitutes
on objects that need it otherwise if using large loop
with lots of data can stringify/parse creating copies
for no reason.

add verify2XX so can easily check of a status was
in the 200 range. Error statuses were already being
checked, but if you want to make sure was not a redirect
(from invalid security) then can add this.