Difficulty level: medium to complex