be more strict with history substitution