task 1 - 250 lines shorter- not sure it is ok