Fixes #3.
Fixes #4.
Fixes #5.
Fixes #6.