tidying up, trying to use the class listeners

... so far as possible.
with limited success.