getProgram with name throws exception if not found and added method hasProgram