I did try that and at least with the boolean it was not getting set each time I instantiated a new instance of ``Item``.  The boolean value was returning null when I tried to poll the value for each ``item`` in ``items``, for example, when computing remaining.  So ``int get remaining => items.where((i) => !i.done).length;`` would fail with ``i.done = null``.  But if this should work, I will go back and take a look again and see what's up.