Major reworking of Programmes tab to use React's component local state