Solved #18
Solved #20
Solved #20
Solved #21