! Use TreeSet, rewrite endpoint propagation, temporary remove optimizers, new Needs DSL