The main change here was to completely rewrite how conditions are handled.