interface. From Toru Nishimura <nisimura@itc.aist-nara.ac.jp>. Partly merged back with Alpha code by Jonathan Stone. Needs more merging.