Author: Takamichi Ninomiya and D.J. Enright