Programming assignment 4