Complete this challenge is quite difficult.