able to break an expression to cases, next, orthogonally extract state from the conditions