simplify: only one pass
Try fixing substitution with context