For now, only allow one-to-one substs
trying a hash approach