Author: yk@magniel.com