Resolves #5.
Resolves #6.
Resolves #7.