revised according to PPT