four first steps added
fifth step added