Refactor ProgramController.State and ProgramStatus