3rd commit programming assignment 2