FP assignment 3 - mostly done.