See Prof. Sayward's page here.