CS373: new exercise 1