See http://www.cs.duke.edu/csed/tapestry/win/