agree, events would work very well here.