Programming assisgment 2