Author: Satoshi Machiguchi