Source: http://www.cs.iit.edu/~yee/pub/nsf01.pdf