assigmnet 2, required tasks
assignment 2 extra 1