Task #1 solution
Task #2 solution
Task #3 solution