http://www.cs.berkeley.edu/~jfgf/smc/