Finished term type refactor