Solved weekly challenge 28