This is no perfect translation, and it may contain errors.