Reworked all program related UI components so that everything is generalised via the ProgramDescriptors in the application context