Added and implemented the ProgramManager and Program classes