Programming assignment 3