program does problem 1 and 2 correctly