FINAL version of cs169proj1