STABLE - lister draw optimised

The lister function now only redraws the lines that have been updated
and no longer upodates on state chnage but insted detects specific
changes. The cost of this is that the add buttons only add to the end of
the list which will be revisited later