final phase2
read and test