finished programming assignment