Author: Makoto Raiku;