problem 3 progress - need to improve sppeed