Last version of programming assignment