Program assignment 2 final