step4 and step5(done)