translated by rogetfan