Project for MIT's 6.470 competition