see http://theory.stanford.edu/~amitp/Yapps/ for information
