All 5 steps working and commented