added more instruction and explanation