(Challenge #125) : draft solution.