http://www-inst.eecs.berkeley.edu/~cs61bl/su13/geninfo.html