problems 88 - 90, and optimizing other ones