subs does not mutate input dict