refactor else ifs to switch to make code more readable
new feature: ignoring tokens in unification
new feature: ignoring tokens in unification