Author: Satoshi Takagi