Many more invariant/error checks.  Debugging