Author: Dpal-chen.