corrected visitProgram() method