Initial commit
Solve #2.
Solve #3.
Solve #4.