some work on correctness (shelving for a bit)