Worked on P1, except for handling null exceptions (ideas?)