Further refactoring of condition evaluation, this will probably be stable