Added ProgramParser and made required modifications