fix: better tests and normalization for subst