Notes:
http://www.tik.ee.ethz.ch/~topsy/