Make the unifier actually useful. Also, refactor