more optimization passes
more new types/functions