some restructuring in the backwards solver and some additional test cases