x Complete
 v Untested
 d Deleted
 p Probably already done

Critical
---------------------
 x alarm() like timeout for test cases
 x better library support for everything
 x find lab02/ if it is parent folder
 x change temp directory name to lab02_grade
 x better write protection
 x better output design
 x better cout output display. Inefficiencies may be hazardous (EasyBMP)
 x [processing]
 x [make options] - support multiple on same line, tough, maybe use system
 x find monad/ directory
 x Look into returning 0s for students who forget files
 x handle 2 svn's discrepancies better, how to download _tests before release
 x improve command line args
 x must read from pipe while waiting
 v create longer realtime timeout in addition to process time timeout (blocking)
    d maybe lower realtime limit to prevent exploiting forks for cpu time - nvm
    x customizable timeouts
 x clean/up option for tests etc downloaded from svn
 x need 2 pipes to avoid security flaw
 x make valgrind secure
 x remove tests from global static space
 x provisions to handle expected output -> really should rework tests and MPs
 x ADD --update to indicate to update any svn folders
   avoid wasted compilation - Simon
    x better sandboxing - move directory, make new, move safe files, rm temp
    x [Preserved Files]
    x library make system - fix the dependency situation in [Preserved Files]
    p better library system, but what?
    p this is a hard problem because of library system issues - EasyBMP.h
    x EasyBMP shouldn't be taken from student's folder
      SSH for security
      /dev/shm
   better output
     personification
     quotes of the day
     man isatty - colors when terminal
     better output on student idiocy
      x on crazy memory errors, glibc issues, valgrind aborts
      x fix "" failure messages
        if compilation fails
   STYLE
   Directory structure for config.ini includes
   encrypt/secure pipe transfers
   readFile() bug where lines have ':' or '?' in them?!
 x safer cross-platform exec()
    x setenv("PATH"...) to safe path and use execlp

Moderately important
---------------------
 x fix valgrind output on actual test failure
 x allow running of new tests
 x warn, not error on incorrect sum!
 p make sure all student errors return code 0
 x change timeout to use ms as units like time
 x Fail valgrind tests on EasyBMP warnings -> Must explicitly declare
    x add mechanisms for custom output checks
   fix sigalarm security hole
   optimization
   replace ln -s util/* system() calls
   mp1_newtests and lab02_newtests currently have 2 different ways of compiling 2 programs. this should be unified

Doesn't really matter
---------------------
 x spacing between longest test and points should be cut from [1 or 2] to 1.
 d processsOptions errors
   fix unknown times, maybe only output timeout
   remove additional output under valgrind