added problem 28 code